Python/Scipy Kolmogorov-Zurbenko过滤器?

Python/Scipy Kolmogorov-Zurbenko过滤器?,python,scipy,filtering,Python,Scipy,Filtering,我正在寻找一个基于Python的Kolmogorov-Zurbenko过滤器,它接收一个时间序列输入,并根据窗口大小和迭代次数对其进行过滤,但没有发现任何有效的方法。有谁的运气比我好吗 谢谢 我刚才也在研究同样的问题。实际的KZ过滤器在以下情况下非常容易: import pandas as pd def kz(series, window, iterations): """KZ filter implementation series is a pandas series

我正在寻找一个基于Python的Kolmogorov-Zurbenko过滤器,它接收一个时间序列输入,并根据窗口大小和迭代次数对其进行过滤,但没有发现任何有效的方法。有谁的运气比我好吗


谢谢

我刚才也在研究同样的问题。实际的KZ过滤器在以下情况下非常容易:

import pandas as pd
def kz(series, window, iterations):
    """KZ filter implementation
    series is a pandas series
    window is the filter window m in the units of the data (m = 2q+1)
    iterations is the number of times the moving average is evaluated
    """
    z = series.copy()
    for i in range(iterations):
        z = pd.rolling_mean(z, window=window, min_periods=1, center=True)
    return z

据我所知,不容易实现的是Kologorov-Zurbenko滤波器(KZA)的自适应版本。这至少需要一种滚动平均法,该方法允许指定中心左右不同的窗口长度。at的C代码看起来相当简单直接,但它需要循环,因此如果直接用Python实现,速度会非常慢

2017年在GitHub上实现了完整的实施: