Rang des valeurs dans le tableau NumPy
-
NumPy Rank avec la méthode
numpy.argsort()
-
NumPy Rank avec la fonction
scipy.stats.rankdata()
en Python
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
.
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