logo

numpy.argsort() in Python

De NumPy-module biedt een functie argsort(), retourneert de indices die een array zouden sorteren.

De NumPy-module biedt een functie voor het uitvoeren van een indirecte sortering samen met de gegeven as met behulp van het algoritme dat is gespecificeerd door het trefwoord. Deze functie retourneert een array van indices met dezelfde vorm als 'a', waardoor de array wordt gesorteerd.

Syntaxis

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

Parameters

Dit zijn de volgende parameters in de numpy.argsort() functie:

verbeterd voor lus-Java

a: array_like

Deze parameter definieert de bronarray die we willen sorteren.

as: int of Geen (optioneel)

Deze parameter definieert de as waarlangs de sortering wordt uitgevoerd. Standaard is de as -1. Als we deze parameter instellen op Geen, wordt de afgevlakte array gebruikt.

kaart in Java

soort: {'quicksort','mergesort','heapsort','stable'}(optioneel)

Deze parameter definieert het sorteeralgoritme. Standaard is het algoritme Snel sorteren . Beide samenvoegensorteren En stal gebruiken tijdsortering onder de dekens. De daadwerkelijke implementatie zal variëren afhankelijk van het gegevenstype. De samenvoegensorteren optie blijft behouden voor achterwaartse compatibiliteit.

volgorde: str of lijst met str (optioneel)

Als 'a' een array is met gedefinieerde velden, specificeert dit argument welke velden als eerste, tweede, enz. moeten worden vergeleken. Het enkele veld kan worden opgegeven als een tekenreeks, en niet alle velden hoeven te worden opgegeven. Maar niet-gespecificeerde velden zullen nog steeds worden gebruikt, in de volgorde waarin ze in het dtype voorkomen, om de banden te verbreken.

Retourneert: index_array: ndarray, int

Deze functie retourneert een array van indices die 'a' sorteren op de opgegeven as. Als 'a' 1-D is, levert a[index_array] een gesorteerde 'a' op. Algemener, np.take_along_axis(arr1, index_array, as=as) levert altijd de gesorteerde 'a' op, ongeacht de dimensionaliteit.

Voorbeeld 1: np.argsort()

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

In de bovenstaande code

  • We hebben numpy geïmporteerd met aliasnaam np.
  • We hebben een array 'a' gemaakt met behulp van de functie np.array().
  • We hebben de variabele 'b' gedeclareerd en de geretourneerde waarde van de functie np.argsort() toegewezen.
  • We hebben de array 'a' in de functie doorgegeven.
  • Ten slotte hebben we geprobeerd de waarde van b af te drukken.

In de uitvoer is een ndarray getoond die de indices (geeft de positie van het element voor de gesorteerde array aan) en dtype bevat.

Uitgang:

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

Voorbeeld 2: Voor 2D-array( sorteert langs eerste as (omlaag))

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

Uitgang:

grafiek voor toewijzing van middelen
 array([[0, 1], [1, 0]], dtype=int64) 

Voorbeeld 3: Voor 2D-array (alternatief voor as=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) 

In de bovenstaande code

  • We hebben numpy geïmporteerd met aliasnaam np.
  • We hebben een 2D-array 'a' gemaakt met behulp van de functie np.array().
  • We hebben variabele indices gedeclareerd en de geretourneerde waarde van de functie np.argsort() toegewezen.
  • We hebben de 2D-array 'a' en de as als 0 doorgegeven.
  • Vervolgens hebben we de functie take_along_axis() gebruikt en de bronarray, indices en as doorgegeven.
  • Deze functie heeft de gesorteerde 2D-array geretourneerd.

In de uitvoer is een 2D-array met gesorteerde elementen weergegeven.

Uitgang:

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

Voorbeeld 4: Voor 2D-array( sorteert langs de laatste as (over))

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

Uitgang:

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

Voorbeeld 5: Voor 2D-array (alternatief voor as=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) 

Uitgang:

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

Voorbeeld 6: Voor 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) 

Uitgang:

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

In de bovenstaande code

  • We hebben numpy geïmporteerd met aliasnaam np.
  • We hebben een 2D-array 'a' gemaakt met behulp van de functie np.array().
  • We hebben een variabele 'indices' gedeclareerd en de geretourneerde waarde van de functie np.unravel_index() toegewezen.
  • We hebben de functie np.argsort() en de vorm van de array 'a' doorgegeven.
  • We hebben de 2D-array 'a' en as doorgegeven als 1 in de functie argsort().
  • Vervolgens probeerden we de waarde van indices en a[indices] af te drukken.

In de uitvoer is een N-D-array met gesorteerde elementen weergegeven.

Voorbeeld 7: Sorteren met sleutels

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