numpy.cumsum

numpy.cumsum(a, axis=None, dtype=None, out=None)

Функция cumsum() возвращает кумулятивную (накапливаемую) сумму элементов массива, в том числе и по заданной оси (осям).

Для пустых массивов или массивов состоящих только из nan возвращается 0.

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

Замечание

При вычислении cуммы целых чисел используется модульная арифметика, поэтому при переполнении буфера ошибки не возникает. На некоторых машинах (32-бит) могут появляться неожиданные (ошибочные) результаты. Более подробно см. в замечании к функции sum.


Примеры

>>> import numpy as np
>>> 
>>> np.cumsum([])
array([], dtype=float64)
>>> np.cumsum([1])
array([1], dtype=int32)
>>> 
>>> 
>>> x = np.arange(5)
>>> x
array([0, 1, 2, 3, 4])
>>> np.cumsum(x)
array([ 0,  1,  3,  6, 10], dtype=int32)
>>> 
>>> 
>>> x = np.arange(0, 8).reshape(2, 4)
>>> x
array([[0, 1, 2, 3],
       [4, 5, 6, 7]])
>>> 
>>> np.cumsum(x)
array([ 0,  1,  3,  6, 10, 15, 21, 28], dtype=int32)
>>> 
>>> #  кумулятивная сумма по столбцам:
... np.cumsum(x, axis = 0)
array([[ 0,  1,  2,  3],
       [ 4,  6,  8, 10]], dtype=int32)
>>> 
>>> #  кумулятивная сумма по строкам:
... np.cumsum(x, axis = 1)
array([[ 0,  1,  3,  6],
       [ 4,  9, 15, 22]], dtype=int32)