Python-生成具有给定(数字)分布的随机数
我有一个具有不同值的概率的文件,例如:
1 0.12 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