我需要转换以下三维数组。我需要第一列变成第一列,第二列变成第二列,第三列变成第三列。
3 4 5 4 7 3
7 1 2 => 5 1 4
4 5 6 6 2 5
6 7b 1 7b 3 6
3 4 5 => 1 4 7b
7b 1 2 2 5 1 这个工作的print(np.rot90(r[6], 3)),但只在2d数组,我需要它在一个三维数组,我需要它为这个数组工作。
[[['6' '7b' '1']
['3' '4' '5']
['7b' '1' '2']]
[['3' '4' '5']
['7' '1' '2']
['4' '5' '6']]
[['7' '1' '2']
['4s' '5' '6']
['1' '2' '3']]]发布于 2022-06-14 21:41:43
np.rot90似乎在内部使用np.transpose ,因此我们可以直接在您的情况下使用np.transpose。IIUC,您可以将数组转到第2和第3维,然后根据需要将它们反转:
a.transpose([0, 2, 1])[:, :, ::-1]
# [[['7b' '3' '6']
# ['1' '4' '7b']
# ['2' '5' '1']]
#
# [['4' '7' '3']
# ['5' '1' '4']
# ['6' '2' '5']]
#
# [['1' '4s' '7']
# ['2' '5' '1']
# ['3' '6' '2']]]它将得到与np.rot90相同的结果,这与@Szczesny in the comments解释得很好。
https://stackoverflow.com/questions/72623471
复制相似问题