【发布时间】:2021-10-17 16:42:00
【问题描述】:
我想计算一个长数组的加权平均值。
在固定大小的窗口中滚动。
例如:
In [1]: import pandas as pd
In [2]: a = pd.Series(range(int(1e8)))
In [5]: import numpy as np; w = np.array(list(range(10)));
In [6]: a.rolling(10).apply(lambda x: (x * w).sum())
我试过了,这很慢,我读了一些博客,有时可以通过以下方式加快速度:
a.rolling(10).apply(np.argmax, engine='numba', raw=True)
但这只能在内置函数中使用,对于某些自定义函数,似乎不起作用。
你知道如何让它在花费时间方面经得起考验吗?
【问题讨论】:
-
你有多少系统内存(RAM)?
-
@ShubhamSharma 128G
标签: python pandas rolling-computation