如何将 NumPy 多维数组重塑为另一个维度相同但形状不同的数组?

How do I reshape a NumPy multi dimensional array to another array with the same dimensions, but different shape?

我有一个形状为 (1,76,76,255) 的 NumPy 多维数组。我想将它重塑为另一个多维形状数组 (1,255,76,76)。还是一个4维数组,不过估计要改数据索引了

有没有不使用循环的简单方法?

您正在寻找的函数是 np.moveaxis(),它可以让您将源轴移动到它的目的地。

>>> arr = np.random.random((1,76,76,255))
>>> 
>>> arr.shape
(1, 76, 76, 255)
>>> arr2 = np.moveaxis(arr, 3, 1)
>>> arr2.shape
(1, 255, 76, 76)
>>> 

请注意这些轴是从 0 开始索引的