python numpy:评估随机生成的二进制值的概率列表

时间:2017-11-06 17:59:49

标签: python arrays numpy random

我有一组概率,我想用这些概率生成一个挑选值数组,每个值都以相应的概率选择。

示例:

in:  [ 0.5,  0.5,  0.5,  0.5, 0.01, 0.01, 0.99, 0.99]
out: [   0,    1,    1,    0,    0,    0,    1,    1]

我想为此使用numpy本机函数,而不是以下循环:

array_of_probs = [0.5, 0.5, 0.5, 0.5, 0.01, 0.01, 0.99, 0.99]
results = np.zeros(len(array_of_probs))
for i, probs in enumerate(array_of_probs):
  results[i] = np.random.choice([1, 0], 1, p=[probs, 1-probs])

1 个答案:

答案 0 :(得分:1)

通过将数组与随机生成的数组进行比较,您可以轻松地计算出这一点,因为0到1之间的随机数小于0.3的概率为0.3。

E.g。

np.random.rand(len(odds)) < odds