numpy.cumulative_sum#
- numpy.кумулятивная сумма(x, /, *, ось=None, dtype=None, выход=None, include_initial=False)[источник]#
Вернуть кумулятивную сумму элементов вдоль заданной оси.
Эта функция является совместимой с Array API альтернативой
numpy.cumsum.- Параметры:
- xarray_like
Входной массив.
- осьint, необязательный
Ось, по которой вычисляется кумулятивная сумма. По умолчанию (None) разрешено только для одномерных массивов. Для массивов с более чем одним измерением
axisтребуется.- dtypedtype, опционально
Тип возвращаемого массива и аккумулятора, в котором суммируются элементы. Если
dtypeне указан, по умолчанию используется dtypex, если толькоxимеет целочисленный dtype с точностью меньше, чем у целого числа платформы по умолчанию. В этом случае используется целое число платформы по умолчанию.- выходndarray, необязательно
Альтернативный выходной массив для размещения результата. Он должен иметь ту же форму и длину буфера, что и ожидаемый вывод, но тип будет приведён при необходимости. См. Определение типа вывода для получения дополнительной информации.
- include_initialbool, необязательно
Логическое значение, указывающее, включать ли начальное значение (нули) как первое значение в выводе. С
include_initial=Trueформа выхода отличается от формы входа. По умолчанию:False.
- Возвращает:
- cumulative_sum_along_axisndarray
Новый массив с результатом возвращается, если только
outуказан, в этом случае ссылка наoutвозвращается. Результат имеет ту же форму, что иxifinclude_initial=False.
Смотрите также
Примечания
Арифметика является модульной при использовании целочисленных типов, и при переполнении ошибка не возникает.
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