Valores de classificação em NumPy Array

Muhammad Maisam Abbas 30 janeiro 2023
  1. NumPy Rank com o método numpy.argsort()
  2. Classificação NumPy com função scipy.stats.rankdata() em Python
Valores de classificação em NumPy Array

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.

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