Rang des valeurs dans le tableau NumPy

Muhammad Maisam Abbas 30 janvier 2023
  1. NumPy Rank avec la méthode numpy.argsort()
  2. NumPy Rank avec la fonction scipy.stats.rankdata() en Python
Rang des valeurs dans le tableau NumPy

Ce tutoriel présentera les méthodes pour classer les données dans un tableau Python NumPy.

NumPy Rank avec la méthode numpy.argsort()

La méthode numpy.argsort() est utilisée pour obtenir les indices qui peuvent être utilisés pour trier un tableau NumPy. Ces indices peuvent également être utilisés comme rangs pour chaque élément à l’intérieur du tableau. La méthode numpy.argsort() est appelée par le tableau et renvoie le rang de chaque élément à l’intérieur du tableau sous la forme d’un autre tableau.

import numpy as np

array = np.array([1, 8, 5, 7, 9])

temp = array.argsort()

ranks = np.empty_like(temp)

ranks[temp] = np.arange(len(array))
print(array)
print(ranks)

Production:

[1 8 5 7 9]
[0 3 1 2 4]

Nous avons classé les éléments à l’intérieur du tableau NumPy array en utilisant la fonction numpy.argsort() dans le code ci-dessus. Nous avons d’abord créé notre tableau avec la fonction np.array(). Nous avons ensuite utilisé la fonction array.argsort() et stocké les valeurs dans le tableau temp. Après cela, nous avons créé un autre tableau, ranks, qui contient le rang de chaque élément du array. Nous avons ensuite attribué le rang de chaque élément à l’intérieur du array à chaque élément des ranks avec rangs[temp] = np.arange(len(array)).

La méthode décrite dans l’exemple de codage mentionné ci-dessus fonctionne bien, mais nous pouvons encore simplifier notre code en utilisant deux fois la fonction numpy.argsort(). Ce phénomène est démontré dans l’exemple de codage ci-dessous.

import numpy as np

array = np.array([1, 8, 5, 7, 9])

temp = array.argsort()

ranks = temp.argsort()
print(array)
print(ranks)

Production:

[1 8 5 7 9]
[0 3 1 2 4]

Nous avons créé un autre tableau ranks et attribué le rang de chaque élément à l’intérieur du array à chaque élément des ranks avec ranks = temp.argsort().

NumPy Rank avec la fonction scipy.stats.rankdata() en Python

Nous pouvons également utiliser la fonction rankdata() à l’intérieur de la bibliothèque scipy.stats pour obtenir le rang de chaque élément dans notre tableau NumPy. La fonction rankdata() prend le tableau comme paramètre d’entrée, classe chaque élément à l’intérieur du tableau et renvoie le résultat sous la forme d’un autre tableau de même longueur.

from scipy.stats import rankdata
import numpy as np

array = np.array([1, 8, 5, 7, 9])

ranks = rankdata(array)
print(array)
print(ranks)

Production:

[1 8 5 7 9]
[1. 4. 2. 3. 5.]

Nous avons d’abord créé notre tableau avec la fonction np.array(). Nous avons ensuite utilisé la fonction rankdata(array) et stocké les valeurs dans le tableau ranks.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn