NumPy Array Sortering | Sådan sorteres NumPy Array
Sortering af et array er et meget vigtigt trin i dataanalyse, da det hjælper med at bestille data og gør det nemmere at søge og rense.
I denne tutorial lærer vi hvordan man sorterer et array i NumPy . Du kan sortere et array i NumPy:
- Brug af np.sort() funktion
- in-line sortering
- sortering langs forskellige akser
- Brug af np.argsort() funktion
- Brug af funktionen np.lexsort().
Brug af sort()-funktionen
sort()-metoden sorterer elementet i en given datastruktur (her array). Kald sorteringsfunktionen med matrixobjektet for at sortere elementerne.
Der er to tilfælde af sortering array med sort() metoden:
- Sorter NumPy-array på plads
- Sorter NumPy-array langs akser
Vi vil dække begge disse metoder med et eksempel nedenfor:
Sorter array på stedet
At sortere et array på plads betyder direkte sortering af originale array-elementer.
Det opretter ikke en ny array-kopi og er meget hukommelseseffektiv.
Eksempel
Brug af metoden sort() til at sortere elementer i NumPy-arrayet på plads.
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)> |
Produktion:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]
Sorter array langs forskellige akser
Denne metode opretter en sorteret kopi af det givne NumPy-array.
Det bruges mest i et multi-dimensionelt array, når du vil sortere langs en given dimension.
Eksempel
Brug af metoden sort() til elementer i NumPy-arrayet langs aksen
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)> |
Produktion:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]
Brug af argsort()
argsort() metode er en indirekte måde at sortere NumPy-arrayet på langs en given akse.
Det returnerer en række af indekser der ville sortere det originale array i stigende rækkefølge.
Eksempel
Brug af argsort() til at sortere elementer i NumPy-arrayet
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)> |
Produktion:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Sorteret array-> [1 3 3 4 6 7 9]
Brug af nøglesekvens
Sortering af et array ved hjælp af en sekvens af nøgler giver os mulighed for at sortere et array baseret på flere kriterier.
Du kan bruge denne metode med funktionen np.lexsort(). Funktionen lexsort() returnerer en matrix af indekser, der ville sortere den oprindelige matrix.
Eksempel
Få stabil sortering ved hjælp af en sekvens af nøgler.
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)> |
Produktion:
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]
Tjek også: Sortering, søgning og optælling i NumPy
Konklusion
Sortering af NumPy-arrayet gør det nemmere at finde duplikat-, maksimum- og minimumselementer. Det er en væsentlig operation for datamanipulation, hvilket gør det lettere at arbejde med data.
I denne tutorial har vi dækket tre metoder til, hvordan man sorterer et array i NumPy, dvs. sort(), argsort() og lexsort(). Alle disse metoder giver forskellige funktionaliteter til at sortere ndarray i NumPy. Vi har forklaret metoderne i lette ord med eksempler for at give dig en fuldstændig forståelse af emnet.