我有一个3D矩阵,或更确切地说,是一个2D矩阵的数组,我想颠倒最深数据集的顺序。
所以说我有:
array([[[ 1 , 2 , 3 , ...,
7 , 8 , 9 ],
...,
[ 10 , 11 , 12 , ...,
16 , 17 , 18 ]],
[[ 19 , 20 , 21 , ...,
25 , 26 , 27 ],
...,
[ 28 , 29 , 30 , ...,
34 , 35 , 36 ]]])
我希望成为
array([[[ 9 , 8 , 7 , ...,
3 , 2 , 1 ],
...,
[ 18 , 17 , 16 , ...,
12 , 11 , 10 ]],
[[ 27 , 26 , 25 , ...,
21 , 20 , 19 ],
...,
[ 36 , 35 , 34 , ...,
30 , 29 , 28 ]]])
我目前正在通过使用以下方法实现此结果:
reordered_list = []
for i in range(ts):
inner_list = []
for j in range(M_y):
inner_list.append(original_array[i][j][::-1])
reordered_list.append(inner_list)
reordered_array = np.array(reordered_list)
但想知道是否有更有效的途径。
提前感谢。
您可以使用:
a = np.array([[[ 1 , 2 , 3,
7 , 8 , 9 ],
[ 10 , 11 , 12 ,
16 , 17 , 18 ]],
[[ 19 , 20 , 21 ,
25 , 26 , 27 ],
[ 28 , 29 , 30 ,
34 , 35 , 36 ]]])
a[:,:,::-1]
输出:
array([[[ 9, 8, 7, 3, 2, 1],
[18, 17, 16, 12, 11, 10]],
[[27, 26, 25, 21, 20, 19],
[36, 35, 34, 30, 29, 28]]])
您可以将numpy.flip()与相关的轴一起使用(此处为2)
y = np.flip(x, axis=2)