用python平滑 一段曲线
时间: 2024-02-28 10:47:33 浏览: 94
平滑曲线的方法有很多种,我这里介绍一种比较简单的方法,即利用Moving Average(移动平均)对曲线进行平滑处理。
移动平均是一种基本的时间序列分析方法,它的基本思想是在一段时间内,取平均值作为当前时刻的值。我们可以利用这种方法对曲线进行平滑处理,具体步骤如下:
1.定义窗口大小,即在多少个数据点内取平均值。通常窗口大小为奇数,例如5、7、9等。
2.从曲线的第一个数据点开始,每次取窗口大小个数据点,计算它们的平均值,然后将平均值作为当前时刻的值。
3.将新的数据点添加到平滑曲线中。
4.重复步骤2-3,直到处理完所有数据点。
下面是一个简单的Python代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成原始曲线
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 定义窗口大小和平滑曲线
window_size = 5
smooth_y = []
# 计算平滑曲线
for i in range(len(y) - window_size + 1):
smooth_y.append(np.mean(y[i:i+window_size]))
# 添加缺失的数据点
for i in range(window_size - 1):
smooth_y.insert(0, np.mean(y[0:i+1]))
smooth_y.append(np.mean(y[-i-1:]))
# 绘制图像
plt.plot(x, y, label='Original Curve')
plt.plot(x, smooth_y, label='Smooth Curve')
plt.legend()
plt.show()
```
运行结果如下图所示:
![smooth_curve](https://i.loli.net/2021/05/20/4zP7jKUeMvE6X9W.png)
可以看到,我们成功地对原始曲线进行了平滑处理,使其更加平滑,去除了一些噪声。
阅读全文