如何从概率矩阵创建0-1矩阵

时间:2017-11-21 21:33:02

标签: numpy matrix random

(在任何语言中)对于一个研究项目,我坚持如何将概率值的矩阵P转换为矩阵A,使A_ij = 1,概率为P_ij,否则为0?我查看了各种随机数生成器文档,但一直无法弄清楚如何执行此操作。

1 个答案:

答案 0 :(得分:0)

如果我理解正确:

In [11]: p = np.random.uniform(size=(5,5))

In [12]: p
Out[12]:
array([[ 0.45481883,  0.21242567,  0.3124863 ,  0.00485797,  0.31970718],
       [ 0.91995847,  0.29907277,  0.59154085,  0.85847147,  0.13227595],
       [ 0.91914631,  0.5495813 ,  0.58648856,  0.08037582,  0.23005148],
       [ 0.12464628,  0.70657028,  0.75975869,  0.77632964,  0.24587041],
       [ 0.69259133,  0.183515  ,  0.65500547,  0.19526148,  0.26975325]])

In [13]: a = (p.round(1)==0.7).astype(np.int8)

In [14]: a
Out[14]:
array([[0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0],
       [0, 1, 0, 0, 0],
       [1, 0, 1, 0, 0]], dtype=int8)