使用 Python 实现移动平均
尽管 NumPy 或 SciPy 中没有计算移动平均值的专用函数,但有一个简单且使用 np.cumsum 函数来实现它的有效方法。这种方法对于非加权移动平均值特别有效。
def moving_average(a, n=3): ret = np.cumsum(a, dtype=float) ret[n:] = ret[n:] - ret[:-n] return ret[n - 1:] / n
此代码采用数组 a 和窗口大小 n 来计算移动平均值。它使用 np.cumsum 计算数组的累积和,然后减去前 n 个元素的总和以调整移动窗口。然后将结果数组除以 n 以获得平均值。
例如,以下代码计算数组的移动平均值:
a = np.arange(20) moving_average(a) # array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., # 12., 13., 14., 15., 16., 17., 18.])
值得注意的是,实现移动平均值在 NumPy 中相对简单,并且在库中包含此类功能可能没有必要,因为它可能会导致膨胀并减少库对其核心功能的关注。
以上是如何在没有专用函数的情况下在 Python 中实现移动平均线?的详细内容。更多信息请关注PHP中文网其他相关文章!