2016-03-16 204 views
1

假設我們有一個大小爲n * m的隨機矩陣A.每個元素A_ij是伯努利分佈的成功概率。從隨機矩陣生成樣本

我想從一個畫一個樣本Z,使用以下規則:

z_ij從伯努利(A_ij)繪製

有任何numpy的功能支持呢?

編輯:操作如

arr = numpy.random.random([10, 5]) 
f = lambda x: numpy.random.binomial(1, x) 
sp = map(f, arr) 

是低效的。有沒有更快的方法?

回答

3

您可以直接給出一個數組作爲您的二項式分佈的一個參數,例如:

import numpy as np 
arr = np.random.random([10, 5]) 
sp = np.random.binomial(1, arr) 
sp 

 
array([[0, 0, 0, 0, 0], 
     [1, 0, 0, 1, 1], 
     [1, 0, 1, 0, 0], 
     [0, 0, 0, 1, 0], 
     [0, 0, 0, 0, 1], 
     [0, 1, 0, 1, 0], 
     [0, 1, 1, 0, 0], 
     [0, 0, 0, 1, 1], 
     [0, 1, 0, 0, 0], 
     [1, 0, 0, 1, 0]])