从一维数组创建二维数组 - Python Numpy

Ben*_*hav 0 python numpy numpy-ndarray

假设我有一个 numpy 数组,例如

[0, 1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

如何从每 3 个元素创建一个 2D 矩阵,如下所示:

[
[0,1,2],
[1,2,3],
[2,3,4],
[3,4,5]
]
Run Code Online (Sandbox Code Playgroud)

有没有比使用循环更有效的方法for


谢谢。

Chr*_*axs 5

是的,您可以使用滑动窗口视图

import numpy as np

arr = np.arange(6)
view = np.lib.stride_tricks.sliding_window_view(arr, 3)
Run Code Online (Sandbox Code Playgroud)
array([[0, 1, 2],
       [1, 2, 3],
       [2, 3, 4],
       [3, 4, 5]])
Run Code Online (Sandbox Code Playgroud)

但请记住,这是原始数组的视图,而不是新数组。