Numpy中一维数组的滚动窗口?

有没有一种方法可以有效地为Numpy中的1D数组实现滚动窗口?


例如,我有这个纯Python代码段来计算一维列表的滚动标准偏差,其中observations一维值列表和n标准偏差的窗口长度:


stdev = []

for i, data in enumerate(observations[n-1:]):

    strip = observations[i:i+n]

    mean = sum(strip) / n

    stdev.append(sqrt(250*sum([(s-mean)**2 for s in strip])/(n-1)))

有没有办法在Numpy内完全做到这一点,即没有任何Python循环?标准偏差对于而言是微不足道的numpy.std,但滚动窗口部分完全使我难过。


我发现这个关于numpy的滚动窗口博客文章,但似乎并没有为一维数组。


繁星淼淼
浏览 922回答 3
3回答

慕莱坞森

只用一行代码...pd.Series(observations).rolling(n).std()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python