
In NumPy, per un array ndarray contenente il valore mancante np.nan, np.sum() restituisce np.nan. È possibile calcolare la somma dei valori escludendo il valore mancante np.nan con np.nansum().
Vengono forniti non solo np.nansum() ma anche np.nanmean(), np.nanmax(), np.nanmin(), np.nanstd() e np.nanvar(). È possibile calcolare la media, il massimo, il minimo, la deviazione standard e la varianza, ignorando il valore mancante np.nan.
Vedere l’articolo seguente su come sostituire np.nan o eliminare righe o colonne contenenti np.nan.
Usa il seguente file CSV con i dati mancanti.
import numpy as np
arr = np.genfromtxt('data/src/sample_nan.csv', delimiter=',')
print(arr)
# [[ 11. 12. nan 14.]
# [ 21. nan nan 24.]
# [ 31. 32. 33. 34.]]
Utilizza np.nansum() per ndarray contenente il valore mancante np.nan
Per ndarray il valore mancante np.nan, la funzione np.sum() o il metodo sum() di ndarray contiene np.nan.
print(arr.sum())
# nan
print(np.sum(arr))
# nan
np.nansum() aggiunge la somma dei valori escludendo np.nan.
print(np.nansum(arr))
# 212.0
Come con sum(), puoi anche calcolare somme lungo righe o colonne impostando il parametro axis.
print(np.nansum(arr, axis=0))
# [ 63. 44. 33. 72.]
print(np.nansum(arr, axis=1))
# [ 37. 45. 130.]
Nota che nansum() non è fornito come metodo di ndarray.
np.nanmean(), np.nanmax(), np.nanmin(), np.nanstd() e np.nanvar()
Vengono forniti non solo np.nansum() ma anche np.nanmean(), np.nanmax(), np.nanmin(), np.nanstd() e np.nanvar().
È possibile calcolare la media, il massimo, il minimo, la deviazione standard e la varianza, ignorando il valore mancante np.nan.
print(np.nanmean(arr))
# 23.5555555556
print(np.nanmax(arr))
# 34.0
print(np.nanmin(arr))
# 11.0
print(np.nanstd(arr))
# 8.90831211237
print(np.nanvar(arr))
# 79.3580246914