前言
滑动平均窗口是指用一定数量的数据点来计算平均值
,然后随着新数据点的加入和旧数据点的移除
,不断更新平均值的方法。
一、滑动平均窗口的python程序代码,复制可直接运行
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Microsoft YaHei'
import matplotlib
matplotlib.use('TkAgg')
# 生成随机数据
data = np.random.randn(100)
# 滑动窗口大小
window_size = 10
# 计算滑动平均值
sma = np.convolve(data, np.ones(window_size)/window_size, mode='valid')
# 绘制原始数据和滑动平均值
plt.plot(data, color='b', label='原始数据')
plt.plot(sma, color='r', label='滑动平均值')
plt.legend(loc='best')
plt.title('滑动平均窗口示例')
plt.show()
二、实验结果显示
三、每一行代码的详细解释
import numpy as np
:导入numpy库,并将其简写为np,以方便后续代码编写。
import matplotlib.pyplot as plt
:导入matplotlib.pyplot模块,并将其简写为plt,用于绘图。
plt.rcParams['font.family'] = 'Microsoft YaHei'
:设置绘图的字体为微软雅黑。
import matplotlib:
导入matplotlib库。
matplotlib.use('TkAgg')
:设置matplotlib的后端为TkAgg,这样可以在图形用户界面上显示结果。
data = np.random.randn(100)
:使用numpy的随机数生成函数np.random.randn生成100个标准正态分布的随机数,并将这些随机数赋值给变量data。
window_size = 10
:定义一个变量window_size,并将其值设为10,表示滑动窗口的大小为10。
sma = np.convolve(data, np.ones(window_size)/window_size, mode='valid')
:使用numpy的卷积函数np.convolve计算滑动平均值。
这里使用了一个长度为window_size的常数序列(都是1),并将其反转(因为卷积是对称的),然后以有效模式(即不进行填充)进行卷积,这样得到的结果就是从数据开始位置到当前位置的滑动平均值。结果赋值给变量sma。
plt.plot(data, color='b', label='原始数据'):
使用matplotlib的plot函数绘制原始数据,颜色为蓝色,并设置标签为“原始数据”。
plt.plot(sma, color='r', label='滑动平均值'):
使用matplotlib的plot函数绘制滑动平均值,颜色为红色,并设置标签为“滑动平均值”。
plt.legend(loc='best'):
使用matplotlib的legend函数显示图例,位置设置为最佳位置。
plt.title('滑动平均窗口示例'):
设置图的标题为“滑动平均窗口示例”。
plt.show():
使用matplotlib的show函数显示图形。