我有以下3d numpy数组:
import numpy as np
foo = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]], [[9, 10], [11, 12]]])
print(foo)
[[[ 1 2]
[ 3 4]]
[[ 5 6]
[ 7 8]]
[[ 9 10]
[11 12]]]
我想要做的是,以某种方式对其进行转换,新数组的第一维数组是从 foo 的第一维数组的相应行创建的:
[[[ 1 2]
[ 5 6]
[ 9 10]]
[[ 3 4]
[ 7 8]
[11 12]]]
这是我目前的解决方案:
reshaped_arr = []
for i in range(foo.shape[1]):
new_arr = []
for arr in foo:
new_arr.append(arr[i])
reshaped_arr.append(new_arr)
reshaped_arr = np.array(reshaped_arr)
,但我想知道是否有一些"更清洁"这样做的方法(可能使用我不知道的一些numpy函数)。