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.