如何在python中生成具有特定概率的随机数?

时间:2017-11-15 06:04:12

标签: python random

例如,

尝试生成仅包含0 and 1的1000个随机数的列表。

s.t。

0 has the prob of 40%

1 has the prob of 60%

谢谢!

2 个答案:

答案 0 :(得分:0)

你可以使用发电机:

import random

def get_400s_601s():
    for _ in range(1000):
        if random.random() < 0.4:
            yield 0
        else:
            yield 1

或作为一个班轮:

gen_40_60 = (0 if random.random() < 0.4 else 1 for _ in range(1000))

如果你真的需要一个清单:

gen_40_60 = [0 if random.random() < 0.4 else 1 for _ in range(1000)]

答案 1 :(得分:0)

myProb = []

for i in range(1000):
#creates one number out of 0 or 1 with prob p 0.4 for 0 and 0.6 for 1
    test = numpy.random.choice(numpy.arange(0, 2), p=[0.4, 0.6])
    myProb.append(test)

打印(myProb)