numpy.cumsum#
- numpy.cumsum(a, ось=None, dtype=None, выход=None)[источник]#
Вернуть кумулятивную сумму элементов вдоль заданной оси.
- Параметры:
- aarray_like
Входной массив.
- осьint, необязательный
Ось, по которой вычисляется кумулятивная сумма. По умолчанию (None) вычисляется сумма по сглаженному массиву.
- dtypedtype, опционально
Тип возвращаемого массива и аккумулятора, в котором суммируются элементы. Если
dtypeне указан, по умолчанию используется dtype a, если только a имеет целочисленный dtype с точностью меньше, чем у целого числа платформы по умолчанию. В этом случае используется целое число платформы по умолчанию.- выходndarray, необязательно
Альтернативный выходной массив для размещения результата. Он должен иметь ту же форму и длину буфера, что и ожидаемый вывод, но тип будет приведён при необходимости. См. Определение типа вывода для получения дополнительной информации.
- Возвращает:
- cumsum_along_axisndarray.
Новый массив с результатом возвращается, если только выход указан, в этом случае ссылка на выход возвращается. Результат имеет тот же размер, что и a, и той же формы, что и a if ось не равно None или a является одномерным массивом.
Смотрите также
cumulative_sumСовместимая альтернатива Array API для
cumsum.sumСуммирует элементы массива.
trapezoidИнтеграция значений массива с использованием составного правила трапеций.
diffВычислить n-ю дискретную разность вдоль заданной оси.
Примечания
Арифметика является модульной при использовании целочисленных типов, и при переполнении ошибка не возникает.
cumsum(a)[-1]может не равнятьсяsum(a)для значений с плавающей точкой, так какsumможет использовать попарную процедуру суммирования, уменьшая ошибку округления. См.sumдля получения дополнительной информации.Примеры
>>> import numpy as np >>> a = np.array([[1,2,3], [4,5,6]]) >>> a array([[1, 2, 3], [4, 5, 6]]) >>> np.cumsum(a) array([ 1, 3, 6, 10, 15, 21]) >>> np.cumsum(a, dtype=float) # specifies type of output value(s) array([ 1., 3., 6., 10., 15., 21.])
>>> np.cumsum(a,axis=0) # sum over rows for each of the 3 columns array([[1, 2, 3], [5, 7, 9]]) >>> np.cumsum(a,axis=1) # sum over columns for each of the 2 rows array([[ 1, 3, 6], [ 4, 9, 15]])
cumsum(b)[-1]может не равнятьсяsum(b)>>> b = np.array([1, 2e-9, 3e-9] * 1000000) >>> b.cumsum()[-1] 1000000.0050045159 >>> b.sum() 1000000.0050000029