Skip to content

NumPy : Calculer la somme, moyenne, max, min de ndarray contenant np.nan

Dans NumPy, pour un tableau ndarray contenant la valeur manquante np.nan, np.sum() renvoie np.nan. Vous pouvez calculer la somme des valeurs en excluant la valeur manquante np.nan avec np.nansum().

Non seulement np.nansum() mais aussi np.nanmean(), np.nanmax(), np.nanmin(), np.nanstd() et np.nanvar() sont fournis. Vous pouvez calculer la moyenne, le maximum, le minimum, l’écart type et la variance, en ignorant la valeur manquante np.nan.

Consultez l’article suivant pour savoir comment remplacer np.nan ou supprimer des lignes ou des colonnes contenant np.nan.

Utilisez le fichier CSV suivant avec des données manquantes.

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.]]

Utilisez np.nansum() pour ndarray contenant la valeur manquante np.nan

Pour ndarray contenant la valeur manquante np.nan, la fonction np.sum() ou la méthode sum() de ndarray renvoie np.nan.

print(arr.sum())
# nan

print(np.sum(arr))
# nan

np.nansum() renvoie la somme des valeurs à l’exclusion de np.nan.

print(np.nansum(arr))
# 212.0

Comme avec sum(), vous pouvez également calculer des sommes le long de lignes ou de colonnes en définissant le paramètre axis.

print(np.nansum(arr, axis=0))
# [ 63.  44.  33.  72.]

print(np.nansum(arr, axis=1))
# [  37.   45.  130.]

Notez que nansum() n’est pas fourni comme méthode de ndarray.

np.nanmean(), np.nanmax(), np.nanmin(), np.nanstd() et np.nanvar()

Non seulement np.nansum() mais aussi np.nanmean(), np.nanmax(), np.nanmin(), np.nanstd() et np.nanvar() sont fournis.

Vous pouvez calculer la moyenne, le maximum, le minimum, l’écart type et la variance, en ignorant la valeur manquante 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