Ce face ndarray.T și np.transpose()
a.T întoarce un tablou 2D: elementul de pe rândul i, coloana j ajunge pe rândul j, coloana i. Un tablou de formă (2, 3) devine (3, 2).
np.transpose(a) face același lucru. Cu axes alegi ordinea axelor pentru tablouri cu mai mult de două dimensiuni.
Rezultatul este o vedere: nu se copiază datele. Pe un tablou 1D, .T nu schimbă nimic.
Parametri
| Parametru | Descriere |
|---|---|
a |
Tabloul de transpus. |
axes |
Opțional. Noua ordine a axelor, de exemplu (1, 0, 2). Implicit ordinea inversă. |
Ce returnează
O vedere a tabloului, cu axele inversate (sau în ordinea din axes).
Exemple
Exemplul 1: Magazine pe rânduri, apoi pe coloane
import numpy as np
vanzari = np.array([[120, 95, 130],
[80, 110, 105]])
print(vanzari.shape)
print(vanzari.T)
print(vanzari.T.shape)
Rezultat
(2, 3)
[[120 80]
[ 95 110]
[130 105]]
(3, 2)
Exemplul 2: np.transpose cu axes
Un tablou 3D de formă (2, 3, 4) cu ordinea axelor schimbată.
import numpy as np
a = np.zeros((2, 3, 4))
print(np.transpose(a).shape)
print(np.transpose(a, (1, 0, 2)).shape)
Rezultat
(4, 3, 2)
(3, 2, 4)
Exemplul 3: Pe un tablou 1D nu are efect
Pentru o coloană din tablou 1D, schimbă forma cu reshape(-1, 1).
import numpy as np
note = np.array([9, 7, 10])
print(note.T, note.T.shape)
print(note.reshape(-1, 1))
Rezultat
[ 9 7 10] (3,)
[[ 9]
[ 7]
[10]]
Greșeli frecvente
- Aștepți ca
.Tsă transforme un tablou 1D în coloană. Forma(3,)rămâne(3,); foloseștereshape(-1, 1)saua[:, np.newaxis]. - Scrii
a.T()cu paranteze.Teste atribut; metoda estea.transpose(). - Modifici rezultatul lui
.Tși uiți că este o vedere: se schimbă și tabloul inițial.
Comenzi înrudite
ndarray.reshape(): Schimbă forma unui tablou (de exemplu din 12 elemente în 3 x 4) fără să-i schimbe datele.ndarray.shape: Află forma unui tablou (rânduri, coloane), numărul de dimensiuni și numărul total de elemente.np.matmul() și operatorul @: Înmulțirea de matrice cu np.matmul sau operatorul @; diferența față de *, care înmulțește element cu element.Copie și vedere (copy vs view): Explică diferența dintre o vedere (aceleași date) și o copie în NumPy și cum le recunoști cu .base și np.shares_memory.