我理解滚动允许您指定用于计算滚动平均值的窗口类型。文档列出了各种可用的windows类型选项 here . 但是,我尝试使用长度为4的对称加权窗口类型,其定义类似于(并且不可用为内置):
(a + 2*b + 2*c + d)/6
其中,a、b、c和d是任何给定时间滚动窗口的四个元素,[1/6、2/6、2/6、1/6]将是相关权重。
如果按默认窗口类型(boxcar),我会得到以下结果:
import pandas as pd rs = pd.Series(range(10)) print rs.rolling(4, win_type = 'boxcar').mean() 0 NaN 1 NaN 2 NaN 3 1.5 4 2.5 5 3.5 6 4.5 7 5.5 8 6.5 9 7.5 dtype: float64
你知道我如何使用自定义的滚动窗口类型(在这种情况下是对称加权移动平均值)吗?
创建如下内核:
import numpy as np kernel = np.array([1,2,2,1])/6
然后与序列进行卷积:
np.convolve(rs,kernel,'same')