【问题标题】:Generate samples from a random matrix从随机矩阵生成样本
【发布时间】:2016-03-16 20:14:02
【问题描述】:

假设我们有一个大小为 n*m 的随机矩阵 A。每个元素 A_ij 是伯努利分布的成功概率。

我想使用以下规则从 A 中抽取样本 z:

z_ij 取自伯努利(A_ij)

有 numpy 函数支持吗?

编辑:诸如

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

效率低下。有没有更快的方法?

【问题讨论】:

    标签: python numpy random-sample


    【解决方案1】:

    您可以直接将数组作为二项分布的参数之一,例如:

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

    给予

    数组([[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]])

    【讨论】:

      猜你喜欢
      • 2016-06-30
      • 2019-10-14
      • 2017-03-26
      • 2015-11-26
      • 2016-02-15
      • 2012-02-01
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多