Python 正态分布
时间: 2024-08-17 16:02:21 浏览: 55
在Python中,你可以使用`scipy.stats`模块来模拟和处理正态分布(也称为高斯分布)。正态分布是连续概率分布的一种,其特点是中心对称,有两个参数:均值(μ)和标准差(σ)。
要创建一个正态分布并绘制其直方图,可以按照以下步骤操作:
```python
from scipy.stats import norm
import matplotlib.pyplot as plt
# 定义正态分布的参数
mu = 0 # 均值
sigma = 1 # 标准差
# 创建一个从-3到3范围内的x值向量,用于计算密度
x = np.linspace(-3, 3, 100)
# 计算每个x值对应的正态分布概率密度
pdf = norm.pdf(x, mu, sigma)
# 绘制直方图
plt.plot(x, pdf, label='PDF')
plt.hist(np.random.normal(mu, sigma, 1000), density=True, alpha=0.5, label='Sampled data', bins=30)
plt.legend()
plt.show()
```
这段代码首先导入所需的库,然后定义正态分布的参数。接着,它创建了一个x值向量,计算这些值对应的正态分布概率密度函数(pdf),最后用matplotlib绘制了理论上的PDF曲线以及由随机样本产生的直方图。
相关问题
python 正态分布
的概率密度函数和累积分布函数分别是什么?
答:正态分布的概率密度函数是:f(x) = 1 / (σ√(2π)) * e^(-((x-μ)/σ)^2/2),其中μ为均值,σ为标准差;累积分布函数是:Φ(x) = (1/2) * (1 + erf((x-μ)/(σ√2))),其中erf为高斯误差函数。
python正态分布
正态分布(Normal distribution),也称为高斯分布(Gaussian distribution),是统计学中最重要的连续概率分布之一。正态分布的概率密度函数由其均值μ和方差σ^2决定。在Python中,可以使用SciPy库中的stats模块来生成正态分布的随机数。以下是一个示例代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
# 生成正态分布的随机数
mean = 0 # 均值
std = 1 # 标准差
size = 1000 # 生成的随机数个数
data = np.random.normal(mean, std, size)
# 绘制直方图和概率密度函数曲线
fig, ax = plt.subplots()
ax.hist(data, bins=50, density=True, alpha=0.7)
x = np.linspace(mean - 4*std, mean + 4*std, 100)
ax.plot(x, stats.norm.pdf(x, mean, std), 'r-', label='Normal Distribution')
ax.legend()
plt.show()
以上代码首先使用np.random.normal()函数生成1000个符合指定均值和标准差的随机数,并使用plt.hist()函数绘制直方图。然后使用stats.norm.pdf()函数生成正态分布的概率密度函数曲线,并使用plt.plot()函数绘制在同一张图上。最后使用plt.show()函数显示图像。
阅读全文