滑动平均_滑动窗口问题最简单的教程
时间: 2023-12-01 21:04:18 浏览: 21
滑动平均(Moving Average)是一种常用的时间序列数据处理方法,用于平滑数据并去除噪声。滑动窗口(Moving Window)是实现滑动平均的一种方式,即将一个固定大小的窗口在数据序列上滑动,每次计算窗口内数据的平均值,作为当前位置的平滑值。
下面是一个简单的 Python 代码示例,实现了一个长度为 window_size 的滑动窗口和对应的滑动平均函数:
```python
def moving_average(data, window_size):
window = [0.0] * window_size
ret = []
for i, x in enumerate(data):
if i < window_size:
window[i] = x
ret.append(sum(window) / (i + 1))
else:
window[i % window_size] = x
ret.append(sum(window) / window_size)
return ret
```
其中,data 是输入的数据序列,window_size 是滑动窗口的大小。在函数中,我们首先创建一个长度为 window_size 的空窗口,然后遍历数据序列,每次将当前数据加入窗口,计算窗口内数据的平均值,并将平均值作为当前位置的平滑值。
例如,我们可以用如下代码测试上述函数:
```python
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
window_size = 3
smoothed = moving_average(data, window_size)
print(smoothed)
```
输出结果为:
```
[1.0, 1.5, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
```
这里的 smoothed 数组即为输入数据的滑动平均结果,可以看到平滑后的数据更加平稳,去除了原始数据中的噪声。