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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *