Python-生成具有给定(数字)分布的随机数

我有一个具有不同值的概率的文件,例如:

1 0.1

2 0.05

3 0.05

4 0.2

5 0.4

6 0.2

我想使用此分布生成随机数。是否存在处理此问题的现有模块?自己编写代码是很简单的(构建累积密度函数,生成随机值[0,1]并选择相应的值),但似乎这应该是一个常见问题,并且可能有人为它创建了一个函数/模块它。

我需要这个,因为我想生成一个生日列表(不遵循标准random模块中的任何分布)。

回答:

scipy.stats.rv_discrete可能就是你想要的。你可以通过values参数提供概率。然后,你可以使用rvs()分发对象的方法来生成随机数。

正如Eugene Pakhomov在评论中指出的那样,你还可以将p关键字参数传递给numpy.random.choice(),例如

numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])

以上是 Python-生成具有给定(数字)分布的随机数 的全部内容, 来源链接: utcz.com/qa/428397.html

回到顶部