logo

numpy.argsort() i Python

NumPy-modulet giver en funktion argsort(), returnerer de indekser, som ville sortere en matrix.

NumPy-modulet giver en funktion til at udføre en indirekte sortering sammen med den givne akse ved hjælp af algoritmen specificeret af nøgleordet. Denne funktion returnerer et array af indekser af samme form som 'a', som ville sortere arrayet.

Syntaks

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

Parametre

Disse er følgende parametre i numpy.argsort()-funktionen:

sql vælg fra flere tabeller

a: array_like

Denne parameter definerer det kildearray, som vi ønsker at sortere.

akse: int eller ingen (valgfrit)

Denne parameter definerer den akse, langs hvilken sorteringen udføres. Som standard er aksen -1. Hvis vi indstiller denne parameter til Ingen, bruges det fladtrykte array.

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

Denne parameter definerer sorteringsalgoritmen. Som standard er algoritmen quicksort . Begge mergesort og stabil bruger tidssortering under dynen. Den faktiske implementering vil variere med datatypen. Det mergesort indstillingen bibeholdes for bagudkompatibilitet.

rækkefølge: str eller liste over str (valgfrit)

Hvis 'a' er et array med definerede felter, angiver dette argument, hvilke felter der skal sammenlignes først, andet osv. Det enkelte felt kan angives som en streng, og ikke alle felter skal angives. Men uspecificerede felter vil stadig bruge, i den rækkefølge, de kommer op i dtype, til at bryde båndene.

heltal til streng

Returnerer: index_array: ndarray, int

Denne funktion returnerer en række indekser, som sorterer 'a' sammen med den angivne akse. Hvis 'a' er 1-D, giver a[index_array] et sorteret 'a'. Mere generelt, np.take_along_axis(arr1, index_array, axis=axis) giver altid det sorterede 'a', uanset dimensionalitet.

Eksempel 1: np.argsort()

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

I ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har oprettet et array 'a' ved hjælp af np.array()-funktionen.
  • Vi har erklæret variablen 'b' og tildelt den returnerede værdi af funktionen np.argsort().
  • Vi har bestået arrayet 'a' i funktionen.
  • Til sidst forsøgte vi at udskrive værdien af ​​b.

I outputtet er der vist et ndarray, der indeholder indekserne (angiver elementets position for det sorterede array) og dtype.

Produktion:

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

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

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

Produktion:

fordelingsret boolesk algebra
 array([[0, 1], [1, 0]], dtype=int64) 

Eksempel 3: For 2-D-array(alternativ af 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 ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har oprettet et 2-D-array 'a' ved hjælp af np.array()-funktionen.
  • Vi har erklæret variable indekser og tildelt den returnerede værdi af funktionen np.argsort().
  • Vi har passeret 2-D-arrayet 'a' og aksen som 0.
  • Dernæst brugte vi funktionen take_along_axis() og sendte kildearrayet, indekserne og aksen.
  • Denne funktion har returneret det sorterede 2-D-array.

I outputtet er der vist et 2D-array med sorterede elementer.

Produktion:

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

Eksempel 4: For 2-D-array( sorterer langs sidste akse (på tværs))

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

Produktion:

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

Eksempel 5: For 2-D-array(alternativ af 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) 

Produktion:

 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) 

Produktion:

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

I ovenstående kode

  • Vi har importeret numpy med alias navn np.
  • Vi har oprettet et 2-D-array 'a' ved hjælp af np.array()-funktionen.
  • Vi har erklæret en variabel 'indekser' og tildelt den returnerede værdi af funktionen np.unravel_index().
  • Vi har bestået np.argsort()-funktionen og formen af ​​arrayet 'a'.
  • Vi har bestået 2-D-arrayet 'a' og aksen som 1 i argsort()-funktionen.
  • Dernæst forsøgte vi at udskrive værdien af ​​indekser og a[indekser].

I outputtet er der vist et N-D-array med sorterede elementer.

indeks over listen

Eksempel 7: Sortering med nøgler

 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'),>