📅  最后修改于: 2023-12-03 15:04:08.416000             🧑  作者: Mango
本文将介绍如何使用 Python 的 Scipy 库计算移动平均线。移动平均线常常用于分析时间序列数据,以削弱噪声效应并更准确的表示趋势。
移动平均线是通过计算某一时间窗口内数据的平均值来抵消噪声,更准确地表示趋势。例如,计算 5 天的移动平均线意味着将过去 5 天的数据相加并除以 5,这可以减少每天的波动,使趋势更加显著。
Scipy 库提供了 scipy.signal
模块,其中包含计算移动平均线的函数 savgol_filter
。函数参数包括要平滑的时间序列数据、时间窗口的长度和多项式拟合的阶数。
以下是一个示例代码片段,其中使用移动平均线计算一个长度为 5 的时间窗口内的平均值:
import numpy as np
from scipy.signal import savgol_filter
# 生成随机时间序列数据
data = np.random.rand(20)
# 计算移动平均线
window_size = 5
poly_order = 1
smooth_data = savgol_filter(data, window_size, poly_order)
# 输出结果
print(smooth_data)
结果类似于以下内容:
[ 0.14898934 0.29521517 0.43775971 0.57564094 0.70887687 0.8374845
0.96148083 1.08088887 1.1957286 1.30602004 1.41178819 1.51306403
1.60987958 1.70226583 1.79025379 1.87387445 1.95315882 2.02813789
2.09884267 2.16530415]
使用 Scipy 库的 savgol_filter
函数可以很容易地计算移动平均线。移动平均线经常用于时间序列数据,以削弱噪声效应并更准确地表示趋势。