jak podano w documentation -
numpy.transpose(a, axes=None)
osiach: listę wskazówki, opcjonalnie Domyślnie odwrócić wymiary inaczej permutacji osi zgodnie z wartościami podanymi.
Drugi argument to osie, w których wartości są permutowane. To jest na przykład, jeśli indeks elementu początkowego to (x,y,z)
(gdzie x
jest 0-tą osią, y
jest 1. osią, a z
jest 2. osią), pozycja tego elementu w wynikowej tablicy staje się (z, y, x) (to jest 2 osie pierwsza, potem 1 oś, a ostatnia 0 osie), na podstawie argumentu podanego dla axes
.
Ponieważ jesteś transpozycji tablicę kształt (2,2,2)
, transponowanego kształt jest również (2,2,2)
, a pozycje zmieni as -
(0,0,0) -> (0,0,0)
(1,0,0) -> (0,0,1)
(0,1,0) -> (0,1,0)
(1,1,0) -> (0,1,1)
...
od osi do wyboru są trywialne, pozwala wyjaśnić to dla kolejne osie. Przykład -
In [54]: A = np.arange(30).reshape((2, 3, 5))
In [55]: A
Out[55]:
array([[[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]],
[[15, 16, 17, 18, 19],
[20, 21, 22, 23, 24],
[25, 26, 27, 28, 29]]])
In [56]: np.transpose(A,(1,2,0))
Out[56]:
array([[[ 0, 15],
[ 1, 16],
[ 2, 17],
[ 3, 18],
[ 4, 19]],
[[ 5, 20],
[ 6, 21],
[ 7, 22],
[ 8, 23],
[ 9, 24]],
[[10, 25],
[11, 26],
[12, 27],
[13, 28],
[14, 29]]])
W tym przypadku, pierwszy element (0,0,0)
się element w wyniku (0,0,0)
.
Drugi element (0,0,1)
staje się elementem (0,1,0)
w wyniku. I tak dalej -
(0,0,0) -> (0,0,0)
(0,0,1) -> (0,1,0)
(0,0,2) -> (0,2,0)
...
(2,3,4) -> (3,4,2)
...
Czy przeczytałeś dokumentację, np. 'Help (numpy.transpose)'? Po prostu "permutujesz" wymiary. Jeśli przekażesz permutację '(2, 1, 0)', to element, który był na pozycji '[x, y, z]' będzie teraz w pozycji '[z, y, x]' lub w pozycji ' [z, x, y] 'dla permutacji' (3, 0, 1) ' –
Dzięki @tobias_k –