Valores de classificação em NumPy Array
-
NumPy Rank com o método
numpy.argsort()
-
Classificação NumPy com função
scipy.stats.rankdata()
em Python
Este tutorial irá apresentar os métodos para classificar dados dentro de um array Python NumPy.
NumPy Rank com o método numpy.argsort()
O numpy.argsort()
método é usado para obter os índices que podem ser usados para classificar um array NumPy. Esses índices também podem ser usados como classificações para cada elemento dentro do array. O método numpy.argsort()
é chamado pelo array e retorna a classificação de cada elemento dentro do array na forma de outro array.
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)
Resultado:
[1 8 5 7 9]
[0 3 1 2 4]
Classificamos os elementos dentro do array NumPy array
usando a função numpy.argsort()
no código acima. Primeiro criamos nosso array com a função np.array()
. Em seguida, usamos a função array.argsort()
e armazenamos os valores dentro do array temp
. Depois disso, criamos outro array, ranks
, que contém o rank de cada elemento no array
. Em seguida, atribuímos a classificação de cada elemento dentro do array
a cada elemento dos ranks
com ranks[temp] = np.arange(len(array))
.
O método discutido no exemplo de codificação mencionado acima funciona bem, mas podemos simplificar ainda mais nosso código usando a função numpy.argsort()
duas vezes. Esse fenômeno é demonstrado no exemplo de codificação abaixo.
import numpy as np
array = np.array([1, 8, 5, 7, 9])
temp = array.argsort()
ranks = temp.argsort()
print(array)
print(ranks)
Resultado:
[1 8 5 7 9]
[0 3 1 2 4]
Criamos outro array ranks
e atribuímos o rank de cada elemento dentro do array
a cada elemento dos ranks
com ranks = temp.argsort()
.
Classificação NumPy com função scipy.stats.rankdata()
em Python
Também podemos usar a função rankdata()
dentro da biblioteca scipy.stats
para obter a classificação de cada elemento dentro de nosso array NumPy. A função rankdata()
leva o array como um parâmetro de entrada, classifica cada elemento dentro do array e retorna o resultado na forma de outro array do mesmo comprimento.
from scipy.stats import rankdata
import numpy as np
array = np.array([1, 8, 5, 7, 9])
ranks = rankdata(array)
print(array)
print(ranks)
Resultado:
[1 8 5 7 9]
[1. 4. 2. 3. 5.]
Primeiro criamos nosso array com a função np.array()
. Em seguida, usamos a função rankdata(array)
e armazenamos os valores dentro do array 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