Sortare NumPy Array | Cum se sortează NumPy Array

Sortarea unei matrice este un pas foarte important în analiza datelor, deoarece ajută la ordonarea datelor și facilitează căutarea și curățarea.

În acest tutorial, vom învăța cum să sortați o matrice în NumPy . Puteți sorta o matrice în NumPy:

  • Folosind funcția np.sort().
    • sortare în linie
    • sortarea de-a lungul diferitelor axe
  • Folosind funcția np.argsort().
  • Folosind funcția np.lexsort().

Folosind funcția sort().

metoda sort() sortează elementul unei structuri de date date (aici matrice). Apelați funcția de sortare cu obiectul matrice pentru a sorta elementele.

Există două cazuri de sortare a matricei cu metoda sort():

  • Sortați matricea NumPy în loc
  • Sortați tabloul NumPy de-a lungul axelor

Vom acoperi ambele metode cu un exemplu de mai jos:

Sortați matricea pe loc

Sortarea unei matrice în loc înseamnă sortarea directă a elementelor matricei originale.

Nu creează o nouă copie a matricei și este foarte eficientă în memorie.

Exemplu

Folosind metoda sort() pentru a sorta elementele din matricea NumPy.

Python3




# importing libraries> import> numpy as np> > a> => np.array([> 12> ,> 15> ,> 10> ,> 1> ])> print> (> 'Array before sorting'> ,a)> a.sort()> print> (> 'Array after sorting'> ,a)>

Ieșire:

Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15] 

Sortați matricea de-a lungul diferitelor axe

Această metodă creează o copie sortată a matricei NumPy date.

Este folosit mai ales într-o matrice multidimensională atunci când doriți să sortați de-a lungul unei anumite dimensiuni.

Exemplu

Folosind metoda sort() la elementele din tabloul NumPy de-a lungul axei

Python3




# importing libraries> import> numpy as np> # sort along the first axis> a> => np.array([[> 12> ,> 15> ], [> 10> ,> 1> ]])> arr1> => np.sort(a, axis> => 0> )> print> (> 'Along first axis : '> , arr1)> # sort along the last axis> a> => np.array([[> 10> ,> 15> ], [> 12> ,> 1> ]])> arr2> => np.sort(a, axis> => -> 1> )> print> (> ' Along first axis : '> , arr2)> a> => np.array([[> 12> ,> 15> ], [> 10> ,> 1> ]])> arr1> => np.sort(a, axis> => None> )> print> (> ' Along none axis : '> , arr1)>

Ieșire:

Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15] 

Folosind argsort()

metoda argsort(). este o modalitate indirectă de sortare a tabloului NumPy de-a lungul unei axe date.

Se întoarce un matrice de indici care ar sorta matricea originală în ordine crescătoare.

Exemplu

Folosind argsort() pentru a sorta elementele din tabloul NumPy

Python3




import> numpy as np> > # Numpy array created> a> => np.array([> 9> ,> 3> ,> 1> ,> 7> ,> 4> ,> 3> ,> 6> ])> > # unsorted array print> print> (> 'Original array: '> , a)> > # Sort array indices> b> => np.argsort(a)> print> (> 'Sorted indices of original array->'> , b)> > # To get sorted array using sorted indices> # c is temp array created of same len as of b> c> => np.zeros(> len> (b), dtype> => int> )> for> i> in> range> (> 0> ,> len> (b)):> > c[i]> => a[b[i]]> print> (> 'Sorted array->'> , c)>

Ieșire:

Original array:  [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Matrice sortată-> [1 3 3 4 6 7 9] 

Utilizarea secvenței de taste

Sortarea unei matrice folosind o secvență de chei ne permite să sortăm o matrice pe mai multe criterii.

Puteți utiliza această metodă cu funcția np.lexsort(). Funcția lexsort() returnează o matrice de indici care ar sorta matricea originală.

Exemplu

Obțineți o sortare stabilă folosind o secvență de taste.

Python3




import> numpy as np> > # Numpy array created> # First column> a> => np.array([> 9> ,> 3> ,> 1> ,> 3> ,> 4> ,> 3> ,> 6> ])> > # Second column> b> => np.array([> 4> ,> 6> ,> 9> ,> 2> ,> 1> ,> 8> ,> 7> ])> print> (> 'column a, column b'> )> for> (i, j)> in> zip> (a, b):> > print> (i,> ' '> , j)> > # Sort by a then by b> ind> => np.lexsort((b, a))> print> (> 'Sorted indices->'> , ind)>

Ieșire:

column a, column b 9 4 3 6 1 9 3 2 4 1 3 8 6 7 Sorted indices->[2 3 1 5 4 6 0] 

Verificați și: Sortare, căutare și numărare în NumPy

Concluzie

Sortarea matricei NumPy facilitează găsirea elementelor duplicate, maxime și minime. Este o operațiune esențială a manipulării datelor, ceea ce facilitează lucrul cu datele.

În acest tutorial, am acoperit trei metode despre cum să sortăm o matrice în NumPy, adică sort(), argsort() și lexsort(). Toate aceste metode oferă diferite funcționalități pentru a sorta ndarray în NumPy. Am explicat metodele în cuvinte ușoare cu exemple pentru a vă oferi o înțelegere completă a subiectului.