Come rimuovere i valori nan dall'array numpy (3 metodi)
È possibile utilizzare i seguenti metodi per rimuovere i valori NaN da un array NumPy:
Metodo 1: utilizzare isnan()
new_data = data[~np. isnan (data)]
Metodo 2: utilizzare isfinite()
new_data = data[np. isfinite (data)]
Metodo 3: utilizzare logical_not()
new_data = data[np. logical_not (np. isnan (data))]
Ciascuno di questi metodi produce lo stesso risultato, ma il primo metodo è il più breve da inserire e pertanto tende ad essere utilizzato più spesso.
Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.
Esempio 1: rimuovere i valori NaN utilizzando isnan()
Il codice seguente mostra come rimuovere i valori NaN da un array NumPy utilizzando la funzione isnan() :
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[~np. isnan (data)]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
Tieni presente che entrambi i valori NaN sono stati rimossi con successo dall’array NumPy.
Questo metodo mantiene semplicemente tutti gli elementi dell’array che non sono valori (~)NaN.
Esempio 2: rimuovere i valori NaN utilizzando isfinite()
Il codice seguente mostra come rimuovere i valori NaN da un array NumPy utilizzando la funzione isfinite() :
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[np. isfinite (data)]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
Tieni presente che entrambi i valori NaN sono stati rimossi con successo dall’array NumPy.
Questo metodo mantiene semplicemente tutti gli elementi dell’array che sono valori finiti.
Poiché i valori NaN non sono finiti, vengono rimossi dalla tabella.
Esempio 3: rimuovere i valori NaN utilizzando logical_not()
Il codice seguente mostra come rimuovere i valori NaN da un array NumPy utilizzando la funzione logical_not() :
import numpy as np
#create array of data
data = np. array ([4, np.nan, 6, np.nan, 10, 11, 14, 19, 22])
#define new array of data with nan values removed
new_data = data[np. logical_not (np. isnan (data))]
#view new array
print (new_data)
[4. 6. 10. 11. 14. 19. 22.]
Tieni presente che entrambi i valori NaN sono stati rimossi con successo dall’array NumPy.
Sebbene questo metodo sia equivalente ai due precedenti, richiede più digitazione e pertanto non viene utilizzato così spesso.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre operazioni comuni in Python:
Panda: come sostituire le stringhe vuote con NaN
Panda: come sostituire i valori NaN con una stringa