Python中具有特定方差的随机数

时间:2012-01-11 07:34:34

标签: python random variance

在Python程序中,我需要生成具有特定用户控制方差的正态分布随机数。我怎么能这样做?

3 个答案:

答案 0 :(得分:11)

如果您不需要线程安全,请使用random.normalvariate(或random.gauss),并将sigma参数设置为方差的平方根。

答案 1 :(得分:6)

import math
from random import gauss

my_mean = 0
my_variance = 10

random_numbers = [gauss(my_mean, math.sqrt(my_variance)) for i in range(100)]

这将获得100个正态分布的随机数,均值为0,方差为10。

答案 2 :(得分:1)

如果你想从特定范围的数字中采样,你可以这样做:

mu = 350
variance = 10
sigma = math.sqrt(variance)
x = np.linspace(1,572,572)
p = scipy.stats.norm.pdf(x, mu, sigma)
random_number = np.random.choice(x, p=p/np.sum(p))

这样,我们也可以绘制分布图:

plt.plot(x, p)
plt.show()

enter image description here