numpy 交换多维数组中的列

q0qdq0h2  于 2023-08-05  发布在  其他
关注(0)|答案(2)|浏览(109)

我有这个数组:

my_array = np.arange(1216800).reshape(2, 100, 78, 78)

字符串
现在的形状是:(2, 100, 78, 78),我想重新排序为:(100, 78, 78, 2)的值。
我尝试了类似的东西:

my_array[:, :, 2, :], my_array[:, :, :,  3] = my_array[:, :, :, 3], my_array[:, :, 2, :].copy()


交换这些列,但我收到的是相同的数组。
我看到了this,但无论我尝试什么,我都有相同的数组。

z9ju0rcb

z9ju0rcb1#

使用moveaxis将第一个轴(0)移动到末端(-1):

out = np.moveaxis(my_array, 0, -1)

out.shape
# (100, 78, 78, 2)

字符串

cedebl8k

cedebl8k2#

下面是你想要的代码:

import numpy as np

my_array = np.arange(1216800).reshape(2, 100, 78, 78)
reordered_array = np.transpose(my_array, (1, 2, 3, 0))

print(reordered_array.shape)  # Output: (100, 78, 78, 2)

字符串

相关问题