滑动窗口的形状为MxN的numpy.ndarray

12 浏览
0 Comments

滑动窗口的形状为MxN的numpy.ndarray

我有一个形状为(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写的,我不确定它是否高效。此外,它支持元素,但如果每个元素有多个特征,它们最后不会被合并在一起。

0