logo

numpy.argsort() in Python

Das NumPy-Modul stellt eine Funktion argsort() bereit, die die Indizes zurückgibt, die ein Array sortieren würden.

Das NumPy-Modul bietet eine Funktion zum Durchführen einer indirekten Sortierung entlang der angegebenen Achse mithilfe des durch das Schlüsselwort angegebenen Algorithmus. Diese Funktion gibt ein Array von Indizes mit der gleichen Form wie „a“ zurück, wodurch das Array sortiert wird.

Syntax

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

Parameter

Dies sind die folgenden Parameter in der Funktion numpy.argsort():

c Zufallszahl

a: array_like

Dieser Parameter definiert das Quellarray, das wir sortieren möchten.

Achse: int oder None (optional)

Dieser Parameter definiert die Achse, entlang der die Sortierung durchgeführt wird. Standardmäßig ist die Achse -1. Wenn wir diesen Parameter auf „None“ setzen, wird das abgeflachte Array verwendet.

Websites wie coomeet

Art: {'quicksort','mergesort','heapsort','stable'}(optional)

Dieser Parameter definiert den Sortieralgorithmus. Standardmäßig ist der Algorithmus schnelle Sorte . Beide Zusammenführen, sortieren Und stabil Verwenden Sie die Zeit, um unter der Decke zu sortieren. Die tatsächliche Implementierung variiert je nach Datentyp. Der Zusammenführen, sortieren Die Option wird aus Gründen der Abwärtskompatibilität beibehalten.

order: str oder Liste von str (optional)

Wenn „a“ ein Array mit definierten Feldern ist, gibt dieses Argument an, welche Felder zuerst, zweitens usw. verglichen werden sollen. Das einzelne Feld kann als Zeichenfolge angegeben werden, und es müssen nicht alle Felder angegeben werden. Aber nicht spezifizierte Felder werden weiterhin in der Reihenfolge, in der sie im dtype auftauchen, verwendet, um die Bindungen zu lösen.

Rückgabe: index_array: ndarray, int

Diese Funktion gibt ein Array von Indizes zurück, die „a“ entlang der angegebenen Achse sortieren. Wenn 'a' 1-D ist, ergibt a[index_array] ein sortiertes 'a'. Allgemeiner, np.take_along_axis(arr1, index_array, axis=axis) ergibt immer das sortierte 'a', unabhängig von der Dimensionalität.

Beispiel 1: np.argsort()

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

Im obigen Code

Inselbuchstabe Java
  • Wir haben numpy mit dem Aliasnamen np importiert.
  • Wir haben mit der Funktion np.array() ein Array „a“ ​​erstellt.
  • Wir haben die Variable „b“ deklariert und den zurückgegebenen Wert der Funktion np.argsort() zugewiesen.
  • Wir haben in der Funktion das Array „a“ ​​übergeben.
  • Zuletzt haben wir versucht, den Wert von b auszugeben.

In der Ausgabe wurde ein ndarray angezeigt, das die Indizes (gibt die Position des Elements für das sortierte Array an) und den dtype enthält.

Ausgabe:

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

Beispiel 2: Für ein 2D-Array (sortiert entlang der ersten Achse (nach unten))

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

Ausgabe:

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

Beispiel 3: Für 2D-Array (Alternative von Achse=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) 

Im obigen Code

  • Wir haben numpy mit dem Aliasnamen np importiert.
  • Wir haben mit der Funktion np.array() ein 2D-Array „a“ ​​erstellt.
  • Wir haben Variablenindizes deklariert und den zurückgegebenen Wert der Funktion np.argsort() zugewiesen.
  • Wir haben das 2D-Array „a“ ​​und die Achse als 0 übergeben.
  • Als nächstes haben wir die Funktion take_along_axis() verwendet und das Quellarray, die Indizes und die Achse übergeben.
  • Diese Funktion hat das sortierte 2D-Array zurückgegeben.

In der Ausgabe wurde ein 2D-Array mit sortierten Elementen angezeigt.

Ausgabe:

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

Beispiel 4: Für ein 2D-Array (sortiert entlang der letzten Achse (quer))

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

Ausgabe:

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

Beispiel 5: Für 2D-Array (Alternative von Achse=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) 

Ausgabe:

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

Beispiel 6: Für 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) 

Ausgabe:

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

Im obigen Code

  • Wir haben numpy mit dem Aliasnamen np importiert.
  • Wir haben mit der Funktion np.array() ein 2D-Array „a“ ​​erstellt.
  • Wir haben eine Variable „indices“ deklariert und den zurückgegebenen Wert der Funktion np.unravel_index() zugewiesen.
  • Wir haben die Funktion np.argsort() und die Form des Arrays „a“ übergeben.
  • Wir haben das 2D-Array „a“ ​​und die Achse als 1 in der Funktion argsort() übergeben.
  • Als nächstes haben wir versucht, den Wert von Indizes und a[indices] auszugeben.

In der Ausgabe wurde ein N-D-Array mit sortierten Elementen angezeigt.

Beispiel 7: Sortieren mit Schlüsseln

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