logo

numpy.argsort() i Python

NumPy-modulen gir en funksjon argsort(), returnerer indeksene som vil sortere en matrise.

NumPy-modulen gir en funksjon for å utføre en indirekte sortering sammen med den gitte aksen ved hjelp av algoritmen spesifisert av nøkkelordet. Denne funksjonen returnerer en rekke indekser med samme form som 'a', som vil sortere matrisen.

Syntaks

 numpy.argsort(a, axis=-1, kind=None, order=None) 

Parametere

Dette er følgende parametere i numpy.argsort()-funksjonen:

finn i kart c++

a: array_like

Denne parameteren definerer kildematrisen som vi ønsker å sortere.

akse: int eller ingen (valgfritt)

Denne parameteren definerer aksen som sorteringen utføres langs. Som standard er aksen -1. Hvis vi setter denne parameteren til Ingen, brukes den flate matrisen.

type: {'quicksort','mergesort','heapsort','stable'}(valgfritt)

Denne parameteren definerer sorteringsalgoritmen. Som standard er algoritmen kvikksortering . Både mergesort og stabil bruker tidssortering under dyna. Den faktiske implementeringen vil variere med datatypen. De mergesort alternativet beholdes for bakoverkompatibilitet.

rekkefølge: str eller liste over str (valgfritt)

Hvis 'a' er en matrise med definerte felt, spesifiserer dette argumentet hvilke felt som skal sammenlignes først, andre, osv. Enkeltfeltet kan spesifiseres som en streng, og ikke alle felt må spesifiseres. Men uspesifiserte felt vil fortsatt bruke, i den rekkefølgen de kommer opp i dtype, for å bryte båndene.

heltall til streng

Returnerer: index_array: ndarray, int

Denne funksjonen returnerer en rekke indekser som sorterer 'a' sammen med den angitte aksen. Hvis 'a' er 1-D, gir en [index_array] en sortert 'a'. Mer generelt, np.take_along_axis(arr1, index_array, axis=axis) gir alltid den sorterte 'a', uavhengig av dimensjonalitet.

Eksempel 1: np.argsort()

 import numpy as np a=np.array([456,11,63]) a b=np.argsort(a) b 

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget en matrise 'a' ved å bruke np.array()-funksjonen.
  • Vi har erklært variabelen 'b' og tildelt den returnerte verdien av np.argsort()-funksjonen.
  • Vi har passert matrisen 'a' i funksjonen.
  • Til slutt prøvde vi å skrive ut verdien av b.

I utgangen er det vist en ndarray som inneholder indeksene (indikerer posisjonen til elementet for den sorterte matrisen) og dtype.

Produksjon:

 array([456, 11, 63]) array([1, 2, 0], dtype=int64) 

Eksempel 2: For 2D-array( sorteres langs første akse (ned))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices 

Produksjon:

to til én multiplekser
 array([[0, 1], [1, 0]], dtype=int64) 

Eksempel 3: For 2D-matrise(alternativ av akse=0)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=0) indices np.take_along_axis(a, indices, axis=0) 

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget en 2D-array 'a' ved å bruke np.array()-funksjonen.
  • Vi har erklært variabelindekser og tildelt den returnerte verdien av np.argsort()-funksjonen.
  • Vi har passert 2-D-matrisen 'a' og aksen som 0.
  • Deretter brukte vi funksjonen take_along_axis() og sendte kildematrisen, indeksene og aksen.
  • Denne funksjonen har returnert den sorterte 2-D-matrisen.

I utgangen er det vist en 2D-array med sorterte elementer.

Produksjon:

 array([[0, 2], [3, 5]]) 

Eksempel 4: For 2D-matrise( sorterer langs siste akse (på tvers))

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices 

Produksjon:

 array([[0, 1], [1, 0]], dtype=int64) 

Eksempel 5: For 2D-array(alternativ av akse=1)

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.argsort(a, axis=1) indices np.take_along_axis(a, indices, axis=1) 

Produksjon:

 array([[0, 2], [3, 5]]) 

Eksempel 6: For N-D-array

 import numpy as np a = np.array([[0, 5], [3, 2]]) indices = np.unravel_index(np.argsort(a, axis=None), a.shape) indices a[indices] # same as np.sort(a, axis=None) 

Produksjon:

 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

I koden ovenfor

  • Vi har importert numpy med alias navn np.
  • Vi har laget en 2D-array 'a' ved å bruke np.array()-funksjonen.
  • Vi har erklært en variabel 'indekser' og tildelt den returnerte verdien av np.unravel_index()-funksjonen.
  • Vi har bestått np.argsort()-funksjonen og formen til matrisen 'a'.
  • Vi har passert 2-D-matrisen 'a' og aksen som 1 i funksjonen argsort().
  • Deretter prøvde vi å skrive ut verdien av indekser og a[indekser].

I utgangen er det vist en N-D-matrise med sorterte elementer.

hashset vs hashmap

Eksempel 7: Sortering med nøkler

 import numpy as np a= np.array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) a b="np.argsort(a," order="(&apos;x&apos;,&apos;y&apos;))" c="np.argsort(a," < pre> <p> <strong>Output:</strong> </p> <pre> array([(0, 5), (3, 2)], dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]) array([0, 1], dtype="int64)" array([1, 0], < pre> <p> <strong>In the above code</strong> </p> <ul> <li>We have imported numpy with alias name np.</li> <li>We have created a 2-D array &apos;a&apos; using np.array() function with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')].< li> <li>We have declared the variables &apos;b&apos; and &apos;c&apos; and assigned the returned value of np.argsort() function.</li> <li>We have passed the array &apos;a&apos; and order as an argument in the function.</li> <li>Lastly, we tried to print the value of &apos;b&apos; and &apos;c&apos;.</li> </i4'),></li></ul> <p>In the output, a sorted array has been shown with dtype=[(&apos;x&apos;, &apos; <i4'), ('y', ' <i4')]< p> <hr></i4'),></p></i4'),></pre></i4'),>