numpy.nansum

numpy.nansum(a, axis=None, dtype=None, out=None, keepdims=<no value>)

Функция numpy.nansum() вычисляет сумму элементов массива, в том числе и по заданной оси (осям), в которой элементы nan учитываются как 0.

В версиях NumPy <= 1.9.0 для пустых массивов или массивов состоящих только из nan возвращается значение nan. В более поздних версиях возвращается 0.

Параметры:
a - подобный массиву объект или массив NumPy
Указанный объект или массив может состоять из любого доступного в NumPy числового типа.
axis - None, целое число или кортеж целых чисел (необязательный аргумент)
Данный параметр указывает номер оси или номера осей массива по которым выполняется суммирование его элементов. По умолчанию axis = None, что соответствует суммированию всех элементов массива. Если указано отрицательное число, то номер оси отсчитывается от последней оси по направлению к первой. Если указан кортеж целых чисел, то суммирование выполняется по всем указанным осям.
dtype - тип данных NumPy (необязательный аргумент)
Данный параметр указывает тип данных возвращаемого массива а так же тип накапливающего сумматора, в котором происходит сложение элементов. По умолчанию dtype = None, что соответствует типу данных входного массива.
out - массив Numpy (необязательный аргумент)
Указывает массив в который будет помещен результат работы функции. Данный массив должен иметь форму идентичную массиву с результатом работы функции. Подробнее о данном параметре смотрите на странице универсальные функции в разделе out.
keepdims - True или False (необязательный аргумент)
Если данный параметр указан как True, то результат работы функции по указанным осям будет способен к транслированию по исходному массиву, т.е. результат функции оформляется в массив с количеством осей исходного массива. Если параметр установлен в значение False, то результатом работы функции будет либо число, либо одномерный массив чисел.
Возвращает:
результат - число или массив NumPy
Массив имеющий форму входного массива a у которого удалена ось указанная в параметре axis. Если параметр axis не указан, то будет возвращен массив с числом равным сумме всех элементов массива. Если параметр keepdims установлен в значение False, то результатом будет либо число, либо одномерный массив чисел. Если параметр keepdims установлен в значение True, то результатом будет массив с формой транслируемой (совместимой) по исходному массиву.
Смотрите так же: sum, cumsum, prod

Примеры

>>> import numpy as np
>>> 
>>> np.nansum([])
0.0
>>> np.nansum(1)
1
>>> np.nansum([1])
1
>>> np.nansum(np.nan)
0.0
>>> np.nansum([np.nan])
0.0
>>> 
>>> x = np.full(5, np.nan)
>>> x
array([nan, nan, nan, nan, nan])
>>> 
>>> np.nansum(x)
0.0
>>> 
>>> 
>>> x = np.arange(1, 10, dtype = np.float64).reshape(3, 3)
>>> x
array([[1., 2., 3.],
       [4., 5., 6.],
       [7., 8., 9.]])
>>> i, j = [0, 1, 2], [0, 1, 2]
>>> x[i, j] = np.nan
>>> x
array([[nan,  2.,  3.],
       [ 4., nan,  6.],
       [ 7.,  8., nan]])
>>> 
>>> 
>>> np.nansum(x)
30.0
>>> 
>>> np.nansum(x, axis = 0)
array([11., 10.,  9.])
>>> np.nansum(x, axis = 0, keepdims = True)
array([[11., 10.,  9.]])
>>> 
>>> np.nansum(x, axis = 1)
array([ 5., 10., 15.])
>>> np.nansum(x, axis = 1, keepdims = True)
array([[ 5.],
       [10.],
       [15.]])
>>> 
>>> 
>>> #  Если в массиве присутствуют значения 
... #  +inf или -inf то возможны следующие варианты:
... 
>>> np.nansum([np.nan, 1, np.inf])
inf
>>> np.nansum([np.nan, 1, -np.inf])
-inf
>>> np.nansum([np.inf, 1, -np.inf])
nan