【发布时间】:2013-03-21 06:44:20
【问题描述】:
我有一个形状为 (6,2) 的 Numpy 数组:
[[ 0, 1],
[10,11],
[20,21],
[30,31],
[40,41],
[50,51]]
我需要一个滑动窗口,其步长为1,窗口大小为3,如下所示:
[[ 0, 1,10,11,20,21],
[10,11,20,21,30,31],
[20,21,30,31,40,41],
[30,31,40,41,50,51]]
我正在寻找一个 Numpy 解决方案。如果您的解决方案可以参数化原始数组的形状以及窗口大小和步长,那就太好了。
我找到了这个相关的答案Using strides for an efficient moving average filter,但我看不到如何在那里指定步长以及如何将窗口从 3d 折叠到连续的 2d 数组。还有这个Rolling or sliding window iterator?,但那是在Python中,我不确定它的效率如何。此外,它支持元素,但如果每个元素都有多个特征,它最终不会将它们连接在一起。
【问题讨论】:
-
gist.github.com/seberg/3866040 numpy 的多维 rolling_window
-
我更改了标题以明确这不是stackoverflow.com/q/13728392/52074的重复项
标签: python numpy time-series sliding-window