Функция nansum
Функция nansum из библиотеки NumPy возвращает сумму элементов массива,
пропуская при этом значения NaN (Not a Number). Это полезно при работе
с реальными данными, где могут встречаться пропуски. Первым параметром
функция принимает массив, вторым - ось (опционально), по которой производится
суммирование. Также можно указать тип данных результата через параметр dtype.
Синтаксис
np.nansum(a, axis=None, dtype=None, out=None, keepdims=False)
Пример
Давайте вычислим сумму одномерного массива, содержащего значение NaN:
import numpy as np
arr = np.array([1, 2, np.nan, 4, 5])
res = np.nansum(arr)
print(res)
Результат выполнения кода:
12.0
Обратите внимание: значение NaN было проигнорировано,
и сумма вычислена как 1 + 2 + 4 + 5.
Пример
Теперь рассмотрим двумерный массив и вычислим сумму по строкам (оси 1):
import numpy as np
arr = np.array([[1, 2, np.nan], [4, np.nan, 6], [7, 8, 9]])
res = np.nansum(arr, axis=1)
print(res)
Результат выполнения кода:
[ 3. 10. 24.]
Пример
Вычислим сумму всех элементов двумерного массива, игнорируя NaN,
с сохранением размерности результата (параметр keepdims):
import numpy as np
arr = np.array([[1, np.nan, 3], [np.nan, 5, 6]])
res = np.nansum(arr, keepdims=True)
print(res)
Результат выполнения кода:
[[15.]]
Пример
Если массив состоит только из значений NaN, функция вернёт 0:
import numpy as np
arr = np.array([np.nan, np.nan, np.nan])
res = np.nansum(arr)
print(res)
Результат выполнения кода:
0.0