如何在Python中生成随机数?
在Python或者Numpy里面,有没有自带的库可以用来生成基于一些常见分布的随机数,比如:
- 正态分布
- 泊松分布
- 指数分布
- 伯努利分布
还有其他的分布吗?
有没有支持多变量分布的库呢?
2 个回答
5
random
模块有很多功能,可以用来生成各种随机数。虽然不确定它是否支持多变量的随机数。
接下来可以看看Numpy.random,它可能会更适合你的需求。
27
#!/usr/bin/env python
from scipy.stats import bernoulli,poisson,norm,expon
bernoulli、poisson、norm、expon等许多分布的详细信息可以在这里找到。
print(norm.rvs(size=30))
print(bernoulli.rvs(.3,size=30))
print(poisson.rvs(1,2,size=30))
print(expon.rvs(5,size=30))
在scipy.stats中定义的所有分布都有一个共同的接口,可以用来处理pdf(概率密度函数)、cdf(累积分布函数)和rvs(随机变量)。更多信息请查看这里。