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.

Revisions

  1. dinya revised this gist May 7, 2018. 1 changed file with 8 additions and 5 deletions.
    13 changes: 8 additions & 5 deletions moving_average.py
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,11 @@
    def moving_average(a, n=3):
    def moving_average(a, window=3):
    """https://stackoverflow.com/a/14314054/716469
    and modified to be like [``pandas.DataFrame.rolling(win=n).mean()``](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rolling.html)
    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[n:] = ret[n:] - ret[:-n]
    ret[:n] = np.NaN
    return ret / n
    ret[window:] = ret[window:] - ret[:-window]
    ret[:window-1] = np.NaN
    return ret / window
  2. dinya created this gist May 7, 2018.
    8 changes: 8 additions & 0 deletions moving_average.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    def moving_average(a, n=3):
    """https://stackoverflow.com/a/14314054/716469
    and modified to be like [``pandas.DataFrame.rolling(win=n).mean()``](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.rolling.html)
    """
    ret = np.cumsum(a, dtype=float)
    ret[n:] = ret[n:] - ret[:-n]
    ret[:n] = np.NaN
    return ret / n