logo

numpy.argsort() en Python

Le module NumPy fournit une fonction argsort(), renvoie les indices qui trieraient un tableau.

Le module NumPy fournit une fonction permettant d'effectuer un tri indirect avec l'axe donné à l'aide de l'algorithme spécifié par le mot-clé. Cette fonction renvoie un tableau d'indices de la même forme que « a », qui trierait le tableau.

Syntaxe

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

Paramètres

Ce sont les paramètres suivants dans la fonction numpy.argsort() :

combien de villes aux États-Unis d'Amérique

a : array_like

Ce paramètre définit le tableau source que nous voulons trier.

axe : int ou Aucun (facultatif)

Ce paramètre définit l'axe le long duquel le tri est effectué. Par défaut, l'axe est -1. Si nous définissons ce paramètre sur Aucun, le tableau aplati est utilisé.

kind : {'quicksort', 'mergesort', 'heapsort', 'stable'} (facultatif)

Ce paramètre définit l'algorithme de tri. Par défaut, l'algorithme est tri rapide . Les deux tri par fusion et écurie utilisent le tri temporel sous les couvertures. L'implémentation réelle varie en fonction du type de données. Le tri par fusion L’option est conservée pour des raisons de compatibilité ascendante.

tri par insertion en Java

ordre : str ou liste de str (facultatif)

Si « a » est un tableau avec des champs définis, cet argument spécifie les champs à comparer en premier, en second, etc. Le champ unique peut être spécifié sous forme de chaîne et tous les champs n'ont pas besoin d'être spécifiés. Mais les champs non spécifiés seront toujours utilisés, dans l'ordre dans lequel ils apparaissent dans le type, pour rompre les liens.

Renvoie : index_array : ndarray, int

Cette fonction renvoie un tableau d'indices qui trient « a » avec l'axe spécifié. Si « a » est 1-D, a[index_array] donne un « a » trié. Plus généralement, np.take_along_axis(arr1, index_array, axis=axis) donne toujours le « a » trié, quelle que soit la dimensionnalité.

Exemple 1 : np.argsort()

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

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé un tableau 'a' en utilisant la fonction np.array().
  • Nous avons déclaré la variable 'b' et attribué la valeur renvoyée par la fonction np.argsort().
  • Nous avons passé le tableau 'a' dans la fonction.
  • Enfin, nous avons essayé d'imprimer la valeur de b.

Dans la sortie, un ndarray a été affiché qui contient les indices (indiquent la position de l'élément pour le tableau trié) et le type.

java convertir une chaîne en entier

Sortir:

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

Exemple 2 : pour un tableau 2D (tri le long du premier axe (vers le bas))

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

Sortir:

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

Exemple 3 : pour un tableau 2D (alternative à axis=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) 

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé un tableau 2D 'a' en utilisant la fonction np.array().
  • Nous avons déclaré des indices de variables et attribué la valeur renvoyée par la fonction np.argsort().
  • Nous avons transmis le tableau 2D 'a' et l'axe à 0.
  • Ensuite, nous avons utilisé la fonction take_along_axis() et transmis le tableau source, les indices et l'axe.
  • Cette fonction a renvoyé le tableau 2D trié.

Dans la sortie, un tableau 2D avec des éléments triés a été affiché.

Sortir:

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

Exemple 4 : pour un tableau 2D (tri le long du dernier axe (à travers))

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

Sortir:

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

Exemple 5 : pour un tableau 2D (alternative à axis=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) 

Sortir:

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

Exemple 6 : Pour un tableau N-D

 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) 

Sortir:

comment afficher une application dans Android
 (array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64)) array([0, 2, 3, 5]) 

Dans le code ci-dessus

  • Nous avons importé numpy avec le nom d'alias np.
  • Nous avons créé un tableau 2D 'a' en utilisant la fonction np.array().
  • Nous avons déclaré une variable 'indices' et attribué la valeur renvoyée par la fonction np.unravel_index().
  • Nous avons transmis la fonction np.argsort() et la forme du tableau 'a'.
  • Nous avons passé le tableau 2D 'a' et l'axe à 1 dans la fonction argsort().
  • Ensuite, nous avons essayé d'imprimer la valeur des indices et a[indices].

Dans la sortie, un tableau N-D avec des éléments triés a été affiché.

Exemple 7 : Tri avec des clés

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