Valori di rango nell'array NumPy
-
NumPy Rank con il metodo
numpy.argsort()
-
NumPy Rank con la funzione
scipy.stats.rankdata()
in Python
Questo tutorial introdurrà i metodi per classificare i dati all’interno di un array Python NumPy.
NumPy Rank con il metodo numpy.argsort()
Il metodo numpy.argsort()
viene utilizzato per ottenere gli indici che possono essere utilizzati per ordinare un array NumPy. Questi indici possono anche essere usati come ranghi per ogni elemento all’interno dell’array. Il metodo numpy.argsort()
viene chiamato dall’array e restituisce il rango di ogni elemento all’interno dell’array sotto forma di un altro 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)
Produzione:
[1 8 5 7 9]
[0 3 1 2 4]
Abbiamo classificato gli elementi all’interno dell’array NumPy array
usando la funzione numpy.argsort()
nel codice sopra. Per prima cosa abbiamo creato il nostro array con la funzione np.array()
. Abbiamo quindi utilizzato la funzione array.argsort()
e memorizzato i valori all’interno dell’array temp
. Successivamente, abbiamo creato un altro array, ranks
, che contiene il rango di ciascun elemento nell’array
. Abbiamo quindi assegnato il rango di ogni elemento all’interno dell’array
a ciascun elemento dei ranks
con ranks[temp] = np.arange(len(array))
.
Il metodo discusso nell’esempio di codifica sopra menzionato funziona bene, ma possiamo semplificare ulteriormente il nostro codice utilizzando la funzione numpy.argsort()
due volte. Questo fenomeno è dimostrato nell’esempio di codifica seguente.
import numpy as np
array = np.array([1, 8, 5, 7, 9])
temp = array.argsort()
ranks = temp.argsort()
print(array)
print(ranks)
Produzione:
[1 8 5 7 9]
[0 3 1 2 4]
Abbiamo creato un altro array ranks
e assegnato il rango di ogni elemento all’interno dell’array
a ciascun elemento dei ranks
con ranks = temp.argsort()
.
NumPy Rank con la funzione scipy.stats.rankdata()
in Python
Possiamo anche usare la funzione rankdata()
all’interno della libreria scipy.stats
per ottenere il rango di ogni elemento all’interno del nostro array NumPy. La funzione rankdata()
prende l’array come parametro di input, classifica ogni elemento all’interno dell’array e restituisce il risultato sotto forma di un altro array della stessa lunghezza.
from scipy.stats import rankdata
import numpy as np
array = np.array([1, 8, 5, 7, 9])
ranks = rankdata(array)
print(array)
print(ranks)
Produzione:
[1 8 5 7 9]
[1. 4. 2. 3. 5.]
Per prima cosa abbiamo creato il nostro array con la funzione np.array()
. Abbiamo quindi utilizzato la funzione rankdata(array)
e memorizzato i valori all’interno dell’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