我有一个看起来像这样的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矩阵而不重新分配?