python拟合正态分布
时间: 2023-10-09 12:16:04 浏览: 240
使用Python实现正态分布、正态分布采样
使用Python拟合正态分布可以使用scipy.stats.norm模块。首先,将数据加载到一个numpy数组中,然后计算均值和标准差。接下来,使用norm.fit()函数来拟合正态分布,并获取拟合的参数。然后,使用numpy.linspace()函数创建一个范围内的值,然后使用norm.pdf()函数计算在该范围内的概率密度。最后,使用matplotlib库绘制直方图和拟合的正态分布曲线。
示例代码如下:
```python
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
# 加载数据
data = np.loadtxt('data.txt')
# 计算均值和标准差
mean = np.mean(data)
std = np.std(data)
# 拟合正态分布
param = stats.norm.fit(data)
fitted = stats.norm(*param)
# 创建一个范围内的值
x = np.linspace(min(data), max(data), 100)
# 计算概率密度函数
pdf = fitted.pdf(x)
# 绘制直方图和拟合的正态分布曲线
plt.hist(data, bins=30, density=True, alpha=0.7)
plt.plot(x, pdf, 'r-', lw=2)
plt.xlabel('Value')
plt.ylabel('Probability')
plt.title('Histogram and Fitted Normal Distribution')
plt.legend(['Fitted Normal Distribution', 'Histogram'])
plt.show()
```
阅读全文