moving average
iterator method
reverse the array at i, and simply take the mean from i to n.
use list comprehension to generate mini arrays on the fly.
x = np.random.randint(10, size=20)
def moving_average(arr, n):
return [ (arr[:i+1][::-1][:n]).mean() for i, ele in enumerate(arr) ]
d = 5
moving_average(x, d)
tensor convolution
moving_average = np.convolve(x, np.ones(d)/d, mode='valid')