如何在Python中从对数正态分布中生成随机数

  • Post category:Python

生成对数正态分布的随机数,可以使用Python标准库中的random模块和numpy模块。

使用random模块生成对数正态分布的随机数

random模块中有一个lognormvariate()函数,可以生成对数正态分布的随机数。

import random

# 生成均值为mu,标准差为sigma的对数正态分布的随机数
mu = 3
sigma = 0.5
random.lognormvariate(mu, sigma)

其中,mu为对数正态分布的均值,sigma为对数正态分布的标准差。
该函数每次生成一个随机数。

使用numpy模块生成对数正态分布的随机数

numpy模块中有一个lognormal()函数,可以生成对数正态分布的随机数。

import numpy as np

# 生成均值为mu,标准差为sigma的对数正态分布的随机数
mu = 3
sigma = 0.5
np.random.lognormal(mu, sigma)

其中,mu为对数正态分布的均值,sigma为对数正态分布的标准差。
该函数每次生成一个随机数。

示例:

import random
import numpy as np

# 生成100个均值为3,标准差为0.5的对数正态分布的随机数
mu = 3
sigma = 0.5

# 使用random模块生成随机数的示例
random_nums = [random.lognormvariate(mu, sigma) for i in range(100)]
print(random_nums)

# 使用numpy模块生成随机数的示例
numpy_nums = np.random.lognormal(mu, sigma, 100)
print(numpy_nums)

该示例中,分别使用random模块和numpy模块生成了100个均值为3,标准差为0.5的对数正态分布的随机数,并分别打印输出。