NumPy Array Sortering | Hvordan sortere NumPy Array
Sortering av en matrise er et veldig viktig trinn i dataanalyse, da det hjelper med å bestille data, og gjør det lettere å søke og rense.
I denne opplæringen vil vi lære hvordan sortere en matrise i NumPy . Du kan sortere en matrise i NumPy:
- Bruker funksjonen np.sort().
- in-line sortering
- sortering langs forskjellige akser
- Bruker np.argsort() funksjonen
- Bruker np.lexsort() funksjonen
Bruker funksjonen sorter().
sort()-metoden sorterer elementet i en gitt datastruktur (her array). Kall sorteringsfunksjonen med matriseobjektet for å sortere elementene.
Det er to tilfeller av sorteringsarray med sort()-metoden:
- Sorter NumPy-matrisen på plass
- Sorter NumPy-matrisen langs akser
Vi dekker begge disse metodene med et eksempel nedenfor:
Sorter array på plass
Å sortere en matrise på plass betyr direkte sortering av originale matriseelementer.
Den lager ikke en ny array-kopi og er svært minneeffektiv.
Eksempel
Bruke sort()-metoden for å sortere elementer i NumPy-matrisen på plass.
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)> |
Produksjon:
Array before sorting [12 15 10 1] Array after sorting [ 1 10 12 15]
Sorter matrise langs forskjellige akser
Denne metoden lager en sortert kopi av den gitte NumPy-matrisen.
Det brukes mest i en flerdimensjonal matrise når du vil sortere langs en gitt dimensjon.
Eksempel
Ved å bruke sort()-metoden til elementer i NumPy-matrisen 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)> |
Produksjon:
Along first axis : [[10 1] [12 15]]Along first axis : [[10 15] [ 1 12]]Along none axis : [ 1 10 12 15]
Bruker argsort()
argsort()-metoden er en indirekte måte å sortere NumPy-matrisen langs en gitt akse.
Den returnerer en rekke indekser som ville sortere den opprinnelige matrisen i stigende rekkefølge.
Eksempel
Bruke argsort() for å sortere elementer i NumPy-matrisen
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)> |
Produksjon:
Original array: [9 3 1 7 4 3 6] Sorted indices of original array->[2 1 5 4 6 3 0] Sortert array-> [1 3 3 4 6 7 9]
Bruke nøkkelsekvens
Sortering av en matrise ved hjelp av en sekvens av nøkler lar oss sortere en matrise basert på flere kriterier.
Du kan bruke denne metoden med funksjonen np.lexsort(). Funksjonen lexsort() returnerer en rekke indekser som vil sortere den opprinnelige matrisen.
Eksempel
Få stabil sortering ved å bruke en sekvens av taster.
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)> |
Produksjon:
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]
Sjekk også: Sortering, søking og telling i NumPy
Konklusjon
Sortering av NumPy-matrisen gjør det lettere å finne dupliserte, maksimums- og minimumselementer. Det er en viktig operasjon for datamanipulering, noe som gjør det lettere å jobbe med data.
I denne opplæringen har vi dekket tre metoder for hvordan du sorterer en matrise i NumPy, dvs. sort(), argsort() og lexsort(). Alle disse metodene gir forskjellige funksjoner for å sortere ndarray i NumPy. Vi har forklart metodene i enkle ord med eksempler for å gi deg en fullstendig forståelse av emnet.