相比较pandas,numpy并没有很直接的rolling方法,但是numpy 有一个技巧可以让NumPy在C代码内部执行这种循环。
这是通过添加一个与窗口大小相同的额外尺寸和适当的步幅来实现的。
import numpy as np
data = np.arange(20)
def rolling_window(a, window):
shape = a.shape[:-1] + (a.shape[-1] - window + 1, window)
strides = a.strides + (a.strides[-1],)
return np.lib.stride_trick
2021-12-05 14:18:46
59KB
IN
li
mp
1