Skip to content

Instantly share code, notes, and snippets.

@dinya
Last active May 7, 2018 11:31
Show Gist options
  • Select an option

  • Save dinya/4db9dfb88ca6c369e9f4921bf480a18b to your computer and use it in GitHub Desktop.

Select an option

Save dinya/4db9dfb88ca6c369e9f4921bf480a18b to your computer and use it in GitHub Desktop.
moving_average with numpy like pandas.DataFrame.rolling(win=n).mean()
def moving_average(a, window=3):
"""https://stackoverflow.com/a/14314054/716469
and modified to be like ``pandas.Series.rolling(window=n).mean()``:
a = np.array([1,2,3,4,5])
pd.Series(a).rolling(window=3).mean().values == moving_average(a, window=3)
"""
ret = np.cumsum(a, dtype=float)
ret[window:] = ret[window:] - ret[:-window]
ret[:window-1] = np.NaN
return ret / window
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment