python拟合高斯曲线
时间: 2024-08-11 08:01:47 浏览: 62
polyfit-高斯拟合_polyfit_高斯拟合_多次项拟合曲线_高斯曲线拟合_曲线拟合
3星 · 编辑精心推荐
在Python中,我们可以使用`scipy.stats.norm`函数或者`matplotlib.pyplot`库中的`curve_fit`函数来拟合数据到高斯分布,也称为正态分布。高斯分布是一种连续概率分布,其数学公式为`f(x; μ, σ) = (1 / (σ * sqrt(2π))) * exp(-(x - μ)^2 / (2σ^2))`,其中μ是均值,σ是标准差。
以下是一个简单的例子,假设我们有一个随机生成的数据集,我们想对其进行高斯曲线拟合:
```python
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
# 假设这是我们的数据
data = np.random.normal(loc=0, scale=1, size=100)
# 定义高斯分布的拟合函数
def normal_pdf(x, mean, std_dev):
return stats.norm.pdf(x, loc=mean, scale=std_dev)
# 使用curve_fit进行拟合
params, _ = stats.curve_fit(normal_pdf, data, data, p0=[np.mean(data), np.std(data)])
# 计算得到的均值和标准差
mu, sigma = params
# 绘制原始数据和拟合的高斯曲线
plt.hist(data, bins='auto', density=True, alpha=0.5, label="Data")
x = np.linspace(min(data), max(data), 100)
plt.plot(x, normal_pdf(x, mu, sigma), 'r-', linewidth=2, label=f"Fit μ={mu:.2f}, σ={sigma:.2f}")
plt.legend()
plt.show()
阅读全文