编辑:这个问题是在2016年提出的,类似的问题在功能最终被删除之后,类似的问题在这么多年后才被发布,例如吝啬
然而,这个问题关系到新pd.rolling.mean()的表现,应该一直保持开放状态,直到相关的熊猫问题被修复。
看来pd.rolling_mean对ndarrays已经不再受欢迎了,
pd.rolling_mean(x,window=2,center=False) FutureWarning:对于ndarray不推荐使用pd.rolling_mean,并将在将来的版本中删除
但根据这就是答案的说法,这似乎是最快的方法。
现在是否有新的方法可以直接用SciPy或NumPy来实现与pd.rolling_mean一样快的方法?
发布于 2016-03-29 03:19:25
编辑--不幸的是,新的方式看起来还没有那么快:
新版Pandas:
In [1]: x = np.random.uniform(size=100)
In [2]: %timeit pd.rolling_mean(x, window=2)
1000 loops, best of 3: 240 µs per loop
In [3]: %timeit pd.Series(x).rolling(window=2).mean()
1000 loops, best of 3: 226 µs per loop
In [4]: pd.__version__
Out[4]: '0.18.0'旧版本:
In [1]: x = np.random.uniform(size=100)
In [2]: %timeit pd.rolling_mean(x,window=2)
100000 loops, best of 3: 12.4 µs per loop
In [3]: pd.__version__
Out[3]: u'0.17.1'发布于 2016-03-29 03:07:42
看起来新的方法是通过DataFrame.rolling类上的方法(我想你应该把它看作是一个groupby):http://pandas.pydata.org/pandas-docs/version/0.18.0/whatsnew.html
例如:
x.rolling(window=2).mean()发布于 2018-05-23 09:26:47
尝尝这个
x.rolling(window=2, center=False).mean()https://stackoverflow.com/questions/36274447
复制相似问题