我有一个名为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)
。
答案 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