numpy数组视图移动窗口

时间:2017-01-18 17:40:06

标签: python arrays numpy

我有一个看起来像这样的numpy数组

X = numpy.array([1, 2, 3, 4, 5, 6, 7, 8, 9])

我想构建一个数组视图,在移动窗口中对其元素进行分组(在我的示例中为4)。我的结果应该是这样的:

M = numpyp.array([[1, 2, 3, 4],
              [2, 3, 4, 5],
              [3, 4, 5, 6],
              [4, 5, 6, 7],
              [5, 6, 7, 8],
              [6, 7, 8, 9]]

这被称为Hankel矩阵,我可以使用scipy.linalg.hankel来实现它,或者只是执行:

M=numpy.array([X[i:i+4] for i in range(len(X)-3)])

但我想避免重新分配。

有没有办法让数组X中的视图成为上面描述的Hankel矩阵而不重新分配?

0 个答案:

没有答案