欢迎访问宙启技术站
智能推送

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模块可以计算高斯分布的各种统计信息。这些功能为高斯分布的建模与分析提供了便利,实际应用中非常常用。