【问题标题】:Python numpy generate an array of random binary values according to probabilitiesPython numpy 根据概率生成随机二进制值数组
【发布时间】:2016-04-29 17:52:45
【问题描述】:

有什么方法可以在一行中执行以下操作? 假设我有一个概率数组,

p=np.array([0.75, 0.63, 0.33, 0.25, 0.47])

其中每个值对应选择1的概率,(1-p)对应选择0的概率,即0.75为选择1的概率,1-0.75为选择0的概率,0.63为选择1 和 1 - 0.63 用于选择 0 等等。我有没有更简单的方法来执行以下操作,希望没有循环?

values = np.empty(p.shape)
for i, prob in enumerate(p):
    values[i] = np.random.binomial(1, prob)

我知道可以使用 map 来完成,但有没有办法直接在 numpy 中完成?

【问题讨论】:

    标签: python arrays numpy random


    【解决方案1】:
    values = np.random.binomial(1, p)
    

    【讨论】:

    • 我从来不知道它可以与概率数组一起使用。我应该更好地阅读文档。对不起。非常感谢。
    • 不用担心。不是你的错 - ipython 中的文档指定它应该是一个浮点数,但 numpy 中的大多数操作都设计为可广播的,因此即使文档说其他内容也值得一试。
    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 2018-01-09
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多