如何实施移动平均线?

时间:2020-08-24 21:14:23

标签: python time-series

我有一个名为predictions的数组中的数字分布,我想要一个移动平均线。我是Python的新手,所以这里没有使用numpy,只是普通的数组。我的问题是还有更优雅的方式吗?

代码如下:

predictions = []  #Already filled with 7001 values
movingaverage = []
pmean = []
n=-1
count = 0
sumpm = 0
for z in range(40000):
    n+=1
    count+=1
    pmean.append(predictions[n])
    if(count == 5):
        for j in range(5):
            sumpm+=pmean[j]
        sumpm=sumpm/5
        movingaverage.append(sumpm)
        n=n-5
        pmean = []
        sumpm=0
        count = -1

预测数组的大小为7001,或者可以使用len(predictions)

1 个答案:

答案 0 :(得分:0)

这是我过去写的东西

def moving_average(a: list, n: int) -> list:
    """
    :param a: array of numbers
    :param n: window of the moving average
    :return: the moving average sequence
    """
    moving_sum = sum(a[:n])
    moving_averages = [moving_sum/n]

    for i in range(n, len(a)):
        moving_sum += a[i] - a[i - n]
        moving_averages.append(moving_sum / n)

    return moving_averages