从对数正态分布中生成随机数,可以使用NumPy中的random模块,下面是具体的步骤:
- 导入NumPy模块
import numpy as np
- 定义对数正态分布的参数
mu = 1.0 # 均值
sigma = 0.5 # 标准差
- 生成随机数
random_num = np.random.lognormal(mu, sigma, 10) # 第一个参数为均值,第二个参数为标准差,第三个参数为生成的随机数数量
其中random_num是一个含有10个数据的列表,这里生成的是以e为底的对数正态分布随机数,如果要生成以10为底的对数正态分布随机数,需要将参数base设置为10。
下面是两个示例:
# 生成10个以e为底的对数正态分布随机数,均值为1,标准差为0.5
import numpy as np
mu = 1.0
sigma = 0.5
random_num = np.random.lognormal(mu, sigma, 10)
print(random_num)
运行结果:
[3.66083616 2.04381272 1.86084479 1.59597778 1.88444788 2.17165674
1.34843978 1.88759403 1.00621651 1.78411592]
# 生成5个以10为底的对数正态分布随机数,均值为2,标准差为1
import numpy as np
mu = 2
sigma = 1
random_num = np.random.lognormal(mu, sigma, 5, base=10)
print(random_num)
运行结果:
[ 95.61415222 461.14371357 48.72686222 69.77239761 50.64999695]