Valores de rango en NumPy Array
-
Rango NumPy con el método
numpy.argsort()
-
Rango NumPy con la función
scipy.stats.rankdata()
en Python
Este tutorial presentará los métodos para clasificar los datos dentro de un array Python NumPy.
Rango NumPy con el método numpy.argsort()
El método numpy.argsort()
se usa para obtener los índices que se pueden usar para ordenar un array NumPy. Estos índices también se pueden usar como rangos para cada elemento dentro del array. El método numpy.argsort()
es llamado por el array y devuelve el rango de cada elemento dentro del array en forma de otra matriz.
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)
Producción :
[1 8 5 7 9]
[0 3 1 2 4]
Clasificamos los elementos dentro del array NumPy array
usando la función numpy.argsort()
en el código anterior. Primero creamos nuestra matriz con la función np.array()
. Luego usamos la función array.argsort()
y almacenamos los valores dentro del array temp
. Después de eso, creamos otra matriz, ranks
, que contiene el rango de cada elemento en la array
. Luego asignamos el rango de cada elemento dentro de la array
a cada elemento de las ranks
con ranks[temp] = np.arange(len(array))
.
El método discutido en el ejemplo de codificación mencionado anteriormente funciona bien, pero podemos simplificar aún más nuestro código usando la función numpy.argsort()
dos veces. Este fenómeno se demuestra en el siguiente ejemplo de codificación.
import numpy as np
array = np.array([1, 8, 5, 7, 9])
temp = array.argsort()
ranks = temp.argsort()
print(array)
print(ranks)
Producción :
[1 8 5 7 9]
[0 3 1 2 4]
Creamos otra matriz ranks
y asignamos el rango de cada elemento dentro de la array
a cada elemento de las ranks
con ranks = temp.argsort()
.
Rango NumPy con la función scipy.stats.rankdata()
en Python
También podemos usar la función rankdata()
dentro de la biblioteca scipy.stats
para obtener el rango de cada elemento dentro de nuestra matriz NumPy. La función rankdata()
toma el array como parámetro de entrada, clasifica cada elemento dentro del array y devuelve el resultado en forma de otra matriz de la misma longitud.
from scipy.stats import rankdata
import numpy as np
array = np.array([1, 8, 5, 7, 9])
ranks = rankdata(array)
print(array)
print(ranks)
Producción :
[1 8 5 7 9]
[1. 4. 2. 3. 5.]
Primero creamos nuestra matriz con la función np.array()
. Luego usamos la función rankdata(array)
y almacenamos los valores dentro del 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