我正在尝试使用numpy/scipy从对数正态分布中创建随机数。
平均值为2000,标准差为800。
如果我使用numpy.random.lognormal(mean=2000, sigma=800, size=10000)创建我的随机值,我得到的只有非常高的或无穷大的数字。
有没有办法解决这个问题?
mean
和sigma
对应于lognormal
分布的对数分布;该分布的实际算术平均值为exp(mean + sigma**2/2)
,当mean=2000
且sigma=800
时,在标准双精度浮点运算中会得到inf
。
有关更多详细信息,请参见http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.lognormal.html#numpy.random.lognormal和http://en.wikipedia.org/wiki/Log-normal_distribution。
numpy.random.lognormal(mean=np.log(2000),sigma=np.log(800),size=10000)
... 或者可能是np.log10
。记不清数学了。 - Paul H