Python实现高斯分布随机抽样
发布时间:2023-12-16 11:54:30
高斯分布是概率论和统计学中常用的一个连续概率分布,也被称为正态分布。它的概率密度函数的形状呈钟形曲线,以均值为中心对称,标准差决定了曲线的宽度。在实际应用中,高斯分布常用来表示连续变量的随机变化,例如测量误差、天气温度等。
在Python中,可以使用NumPy库中的random模块来实现高斯分布的随机抽样。具体的实现步骤如下:
1. 导入NumPy库:
import numpy as np
2. 设置高斯分布的参数:
mu = 0 # 均值 sigma = 1 # 标准差
3. 使用random模块中的normal函数生成随机数:
samples = np.random.normal(mu, sigma, size)
其中,size表示生成的随机数的个数。
下面是一个完整的示例代码,生成100个符合高斯分布的随机数,并绘制直方图来展示随机数的分布情况:
import numpy as np
import matplotlib.pyplot as plt
mu = 0 # 均值
sigma = 1 # 标准差
size = 100 # 随机数个数
samples = np.random.normal(mu, sigma, size)
plt.hist(samples, bins=20, density=True, alpha=0.7, color='steelblue')
plt.xlabel('Value')
plt.ylabel('Probability')
plt.title('Gaussian Distribution')
plt.show()
运行以上代码,就可以得到一个直方图,并可视化展示了生成的随机数的分布情况。
除了生成符合高斯分布的随机数,还可以使用scipy库中的stats模块来计算高斯分布的概率密度函数、累积分布函数等统计信息。下面是一个计算高斯分布概率密度函数的例子:
import numpy as np
from scipy.stats import norm
mu = 0 # 均值
sigma = 1 # 标准差
x = np.linspace(-10, 10, 100) # 自变量范围
pdf = norm.pdf(x, mu, sigma) # 计算概率密度函数
plt.plot(x, pdf, color='steelblue')
plt.xlabel('Value')
plt.ylabel('Probability Density')
plt.title('Gaussian PDF')
plt.show()
运行以上代码,可以得到一个曲线图,展示了高斯分布的概率密度函数。
总结起来,Python使用NumPy库中的random模块可以方便地生成符合高斯分布的随机数,而使用scipy库中的stats模块可以计算高斯分布的各种统计信息。这些功能为高斯分布的建模与分析提供了便利,实际应用中非常常用。
