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