+-
如何使用NumPy计算移动平均线?
似乎没有简单计算numpy / scipy上的移动平均线的函数,导致 convoluted solutions.

我的问题是双重的:

>通过numpy(正确)实现移动平均线的最简单方法是什么?
>由于这似乎是非常重要且容易出错,在这种情况下是否有充分理由不使用batteries included?

最佳答案
如果您只想要一个简单的非加权移动平均线,您可以使用np.cumsum轻松实现它,这可能比基于FFT的方法更快:

编辑纠正了代码中Bean发现的一个错误的索引.编辑

def moving_average(a, n=3) :
    ret = np.cumsum(a, dtype=float)
    ret[n:] = ret[n:] - ret[:-n]
    return ret[n - 1:] / 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.])
>>> moving_average(a, n=4)
array([  1.5,   2.5,   3.5,   4.5,   5.5,   6.5,   7.5,   8.5,   9.5,
        10.5,  11.5,  12.5,  13.5,  14.5,  15.5,  16.5,  17.5])

所以我猜答案是:它实现起来非常简单,而且numpy可能已经变得有点臃肿了.

点击查看更多相关文章

转载注明原文:如何使用NumPy计算移动平均线? - 乐贴网