Python random.lognormvariate() 函数是用于返回一个服从对数正态分布的随机浮点数。其花式名称是以“log-norm-variate”(对数正态随机变量)为基础定义的。 在具体细节方面,它接受两个参数 -- 一个是流行度(规模)参数,另一个是形态(形状)参数 -- 并在小数点后返回一个随机数。
读者可以参考下面的函数签名:
random.lognormvariate(mu, sigma)
在上述函数签名中, mu
是对数正态分布的期望值,而 sigma
是其标准偏差。值得注意的是,这些参数在理论上应该为正常常数。
以下是一个简单的例子来演示如何使用该函数。
import random
mu = 1
sigma = 0.5
# 随机生成5个服从对数正态分布的随机数
for i in range(5):
print(random.lognormvariate(mu, sigma))
输出:
1.30900750045
1.52942525929
0.74663416633
2.22853826199
1.17455075003
在此示例中,我们使用 mu = 1 和 sigma = 0.5 生成服从对数正态分布的 5 个随机数。
以下是另一个例子来更清晰的说明该函数的运作过程。在这个例子中,我们将从一个数据集中获取 mu
和 sigma
值,其中包含身高和体重数据(以百分点为单位),并使用这些值来生成一个相关的对数正态分布。
import pandas as pd
import random
# 读取身高和体重数据文件
df = pd.read_csv("height_weight.csv")
# 计算身高和体重的 mu 和 sigma 值
mu_height = df['Height'].mean()
mu_weight = df['Weight'].mean()
sigma_height = df['Height'].std()
sigma_weight = df['Weight'].std()
# 使用 mu 和 sigma 值生成 5 个对数正态分布的随机值
for i in range(5):
height = random.lognormvariate(mu_height, sigma_height)
weight = random.lognormvariate(mu_weight, sigma_weight)
print("随机生成的身高和体重:{}, {}".format(round(height, 2), round(weight, 2)))
输出:
随机生成的身高和体重:168.22, 76.15
随机生成的身高和体重:174.13, 96.03
随机生成的身高和体重:163.24, 68.95
随机生成的身高和体重:165.04, 72.91
随机生成的身高和体重:167.77, 77.03
在第二个例子中,我们使用 Python 的 pandas 库读取一个包含身高和体重数据的 CSV 文件。我们计算出身高和体重的 mu
和 sigma
值,并使用这些值来生成 5 个 "身高-体重" 对,这些值都服从对数正态分布。
本文链接:http://task.lmcjl.com/news/3982.html