首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pd.rolling_mean不再受欢迎--ndarray的替代品

pd.rolling_mean不再受欢迎--ndarray的替代品
EN

Stack Overflow用户
提问于 2016-03-29 02:42:48
回答 5查看 13.6K关注 0票数 17

编辑:这个问题是在2016年提出的,类似的问题在功能最终被删除之后,类似的问题在这么多年后才被发布,例如吝啬

然而,这个问题关系到新pd.rolling.mean()的表现,应该一直保持开放状态,直到相关的熊猫问题被修复。

看来pd.rolling_meanndarrays已经不再受欢迎了,

pd.rolling_mean(x,window=2,center=False) FutureWarning:对于ndarray不推荐使用pd.rolling_mean,并将在将来的版本中删除

但根据这就是答案的说法,这似乎是最快的方法。

现在是否有新的方法可以直接用SciPy或NumPy来实现与pd.rolling_mean一样快的方法?

EN

回答 5

Stack Overflow用户

发布于 2016-03-29 03:19:25

编辑--不幸的是,新的方式看起来还没有那么快:

新版Pandas:

代码语言:javascript
复制
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'

旧版本:

代码语言:javascript
复制
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'
票数 10
EN

Stack Overflow用户

发布于 2016-03-29 03:07:42

看起来新的方法是通过DataFrame.rolling类上的方法(我想你应该把它看作是一个groupby):http://pandas.pydata.org/pandas-docs/version/0.18.0/whatsnew.html

例如:

代码语言:javascript
复制
x.rolling(window=2).mean()
票数 5
EN

Stack Overflow用户

发布于 2018-05-23 09:26:47

尝尝这个

代码语言:javascript
复制
x.rolling(window=2, center=False).mean()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36274447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档