logo

NumPy Array Sortering | Hur man sorterar NumPy Array

Att sortera en array är ett mycket viktigt steg i dataanalys eftersom det hjälper till att beställa data och gör det lättare att söka och rengöra.

I den här handledningen kommer vi att lära oss hur man sorterar en array i NumPy . Du kan sortera en array i NumPy:



  • Använder funktionen np.sort().
    • in-line sortering
    • sortering längs olika axlar
  • Använder funktionen np.argsort().
  • Använder funktionen np.lexsort().

Använder sort()-funktionen

sort()-metoden sorterar elementet i en given datastruktur (här array). Anropa sorteringsfunktionen med arrayobjektet för att sortera elementen.

Det finns två fall av sorteringsmatris med sort()-metoden:

  • Sortera NumPy-arrayen på plats
  • Sortera NumPy-array längs axlar

Vi kommer att täcka båda dessa metoder med ett exempel nedan:



Sortera array på plats

Att sortera en array på plats innebär att direkt sortera original array-element.

Den skapar inte en ny arraykopia och är mycket minneseffektiv.

java filterström

Exempel

Använda metoden sort() för att sortera element i NumPy-matrisen på plats.



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]>

Sortera array längs olika axlar

Denna metod skapar en sorterad kopia av den givna NumPy-matrisen.

Det används mest i en flerdimensionell array när du vill sortera efter en given dimension.

Exempel

Använda sort()-metoden till element i NumPy-matrisen längs axeln

Python3


strängar i c



# 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]>

Använder argsort()

argsort() metod är ett indirekt sätt att sortera NumPy-matrisen längs en given axel.

Den returnerar en en rad index som skulle sortera den ursprungliga matrisen i stigande ordning.

Exempel

Använda argsort() för att sortera element i NumPy-matrisen

Python3

för varje typskrift




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] Sorterad array-> [1 3 3 4 6 7 9]>

Använda Sequence of Keys

Genom att sortera en array med en sekvens av nycklar kan vi sortera en array baserat på flera kriterier.

Du kan använda den här metoden med funktionen np.lexsort(). Funktionen lexsort() returnerar en array av index som skulle sortera den ursprungliga arrayen.

Exempel

Få stabil sortering med en sekvens av nycklar.

Python3




tvådimensionellt array-program i c

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]>

Kolla också: Sortering, sökning och räkning i NumPy

Slutsats

Att sortera NumPy-matrisen gör det enklare att hitta dubbletter, maximum och minimum. Det är en viktig operation för datamanipulation, vilket gör det lättare att arbeta med data.

I den här handledningen har vi täckt tre metoder för hur man sorterar en array i NumPy, dvs sort(), argsort() och lexsort(). Alla dessa metoder ger olika funktioner för att sortera ndarray i NumPy. Vi har förklarat metoderna i enkla ord med exempel för att ge dig en fullständig förståelse av ämnet.