numpy.cumulative_sum#

numpy.кумулятивная сумма(x, /, *, ось=None, dtype=None, выход=None, include_initial=False)[источник]#

Вернуть кумулятивную сумму элементов вдоль заданной оси.

Эта функция является совместимой с Array API альтернативой numpy.cumsum.

Параметры:
xarray_like

Входной массив.

осьint, необязательный

Ось, по которой вычисляется кумулятивная сумма. По умолчанию (None) разрешено только для одномерных массивов. Для массивов с более чем одним измерением axis требуется.

dtypedtype, опционально

Тип возвращаемого массива и аккумулятора, в котором суммируются элементы. Если dtype не указан, по умолчанию используется dtype x, если только x имеет целочисленный dtype с точностью меньше, чем у целого числа платформы по умолчанию. В этом случае используется целое число платформы по умолчанию.

выходndarray, необязательно

Альтернативный выходной массив для размещения результата. Он должен иметь ту же форму и длину буфера, что и ожидаемый вывод, но тип будет приведён при необходимости. См. Определение типа вывода для получения дополнительной информации.

include_initialbool, необязательно

Логическое значение, указывающее, включать ли начальное значение (нули) как первое значение в выводе. С include_initial=True форма выхода отличается от формы входа. По умолчанию: False.

Возвращает:
cumulative_sum_along_axisndarray

Новый массив с результатом возвращается, если только out указан, в этом случае ссылка на out возвращается. Результат имеет ту же форму, что и x if include_initial=False.

Смотрите также

sum

Суммирует элементы массива.

trapezoid

Интеграция значений массива с использованием составного правила трапеций.

diff

Вычислить n-ю дискретную разность вдоль заданной оси.

Примечания

Арифметика является модульной при использовании целочисленных типов, и при переполнении ошибка не возникает.

cumulative_sum(a)[-1] может не равняться sum(a) для значений с плавающей точкой, так как sum может использовать попарную процедуру суммирования, уменьшая ошибку округления. См. sum для получения дополнительной информации.

Примеры

>>> a = np.array([1, 2, 3, 4, 5, 6])
>>> a
array([1, 2, 3, 4, 5, 6])
>>> np.cumulative_sum(a)
array([ 1,  3,  6, 10, 15, 21])
>>> np.cumulative_sum(a, dtype=float)  # specifies type of output value(s)
array([  1.,   3.,   6.,  10.,  15.,  21.])
>>> b = np.array([[1, 2, 3], [4, 5, 6]])
>>> np.cumulative_sum(b,axis=0)  # sum over rows for each of the 3 columns
array([[1, 2, 3],
       [5, 7, 9]])
>>> np.cumulative_sum(b,axis=1)  # sum over columns for each of the 2 rows
array([[ 1,  3,  6],
       [ 4,  9, 15]])

cumulative_sum(c)[-1] может не равняться sum(c)

>>> c = np.array([1, 2e-9, 3e-9] * 1000000)
>>> np.cumulative_sum(c)[-1]
1000000.0050045159
>>> c.sum()
1000000.0050000029