ndarray.T și np.transpose() în NumPy

Transpune un tablou: rândurile devin coloane și coloanele devin rânduri.

Sintaxă
a.T
np.transpose(a, axes=None)
a.transpose(*axes)

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 .T să transforme un tablou 1D în coloană. Forma (3,) rămâne (3,); folosește reshape(-1, 1) sau a[:, np.newaxis].
  • Scrii a.T() cu paranteze. T este atribut; metoda este a.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.
Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: ndarray.T și np.transpose()

Ai o nelămurire despre utilizarea comenzii ndarray.T și np.transpose() sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.