代码之家  ›  专栏  ›  技术社区  ›  Tanmay

为熊猫滚动平均值创建自定义窗口类型

  •  3
  • Tanmay  · 技术社区  · 7 年前

    我理解滚动允许您指定用于计算滚动平均值的窗口类型。文档列出了各种可用的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
    

    你知道我如何使用自定义的滚动窗口类型(在这种情况下是对称加权移动平均值)吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Dan fatihk    7 年前

    创建如下内核:

    import numpy as np
    kernel = np.array([1,2,2,1])/6
    

    然后与序列进行卷积:

    np.convolve(rs,kernel,'same')