Ce face np.sort()
np.sort(a) returnează o copie sortată crescător, iar tabloul inițial rămâne neschimbat. Metoda a.sort() sortează chiar tabloul a (pe loc) și returnează None.
Implicit sortarea se face pe ultima axă (axis=-1): într-un tablou 2D, fiecare rând este sortat separat. Cu axis=0 se sortează fiecare coloană, iar cu axis=None tabloul este aplatizat și sortat în întregime. Valorile nan ajung la final.
Pentru ordine descrescătoare, varianta care merge în orice versiune este să inversezi rezultatul: np.sort(a)[::-1]. Din NumPy 2.5 există și parametrul descending=True. Pentru o sortare stabilă (elementele egale își păstrează ordinea) dai stable=True (NumPy 2.0+) sau kind='stable'.
Parametri
| Parametru | Descriere |
|---|---|
a |
Tabloul de sortat. |
axis |
Axa de sortare: implicit -1 (ultima), 0, sau None pentru tabloul aplatizat. |
kind |
Algoritmul: 'quicksort' (implicit), 'mergesort', 'heapsort', 'stable'. |
stable |
Dacă este True, sortarea este stabilă (NumPy 2.0+). |
descending |
Dacă este True, ordinea este descrescătoare (NumPy 2.5+). |
Ce returnează
np.sort: un tablou nou, sortat, de aceeași formă. a.sort(): None (modifică a).
Exemple
Exemplul 1: Copie sortată sau sortare pe loc
import numpy as np
preturi = np.array([45.5, 12.0, 99.9, 30.0])
sortat = np.sort(preturi)
print(sortat)
print(preturi)
rezultat = preturi.sort()
print(rezultat)
print(preturi)
Rezultat
[12. 30. 45.5 99.9]
[45.5 12. 99.9 30. ]
None
[12. 30. 45.5 99.9]
Exemplul 2: Ordine descrescătoare
import numpy as np
note = np.array([7, 10, 5, 9, 8])
print(np.sort(note)[::-1])
print(np.sort(note, descending=True))
Rezultat
[10 9 8 7 5]
[10 9 8 7 5]
Exemplul 3: Sortare pe rânduri, pe coloane și pe tot tabloul
import numpy as np
a = np.array([
[9, 2, 5],
[1, 8, 3],
])
print(np.sort(a))
print(np.sort(a, axis=0))
print(np.sort(a, axis=None))
Rezultat
[[2 5 9]
[1 3 8]]
[[1 2 3]
[9 8 5]]
[1 2 3 5 8 9]
Greșeli frecvente
- Scrii
a = a.sort(): metoda returneazăNone, deci pierzi tabloul. Folosește fiea.sort()singur, fiea = np.sort(a). - Sortezi separat coloanele unui tabel și strici legătura dintre valorile de pe același rând. Ca să sortezi rândurile după o coloană, folosește
np.argsort(). - Folosești
descending=Truepe o versiune mai veche de NumPy 2.5 și primeștiTypeError. Pentru compatibilitate, folosește[::-1].
Comenzi înrudite
np.argsort(): Returnează indicii care ar sorta tabloul; așa sortezi un tablou după altul, de exemplu numele după note.np.unique(): Returnează valorile distincte dintr-un tablou, sortate, și opțional de câte ori apare fiecare (return_counts).np.percentile(): Calculează percentile (q între 0 și 100) cu np.percentile sau cuantile (q între 0 și 1) cu np.quantile.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.