numpy.cumsum
- numpy.cumsum(a, axis=None, dtype=None, out=None)[source]
-
Возвращает кумулятивную сумму элементов по заданной оси.
- Параметры
-
- aarray_like
-
Входной массив.
- axisint, необязательно
-
Ось, по которой вычисляется кумулятивная сумма. По умолчанию (None) вычисляется кумулятивная сумма по уплощенному массиву.
- dtypedtype, необязательно
-
Тип возвращаемого массива и аккумулятора, в котором суммируются элементы. Если
dtypeне указан, он по умолчанию равен типуa, за исключением случая, когдаaимеет целочисленный тип с точностью меньше, чем у стандартного целочисленного типа платформы. В этом случае используется стандартный целочисленный тип платформы. - outndarray, необязательно
-
Альтернативный выходной массив, в который помещается результат. Он должен иметь ту же форму и длину буфера, что и ожидаемый выходной массив, но тип будет приведён, если необходимо. См. Определение типа результата для получения более подробной информации.
- Возвращаемое значение
-
- cumsum_along_axisndarray.
-
Возвращается новый массив, содержащий результат, если не указан
out, в противном случае возвращается ссылка наout. Результат имеет тот же размер, что иa, и ту же форму, что иa, еслиaxisне равен None илиa— одномерный массив.
См. также
Примечания
Арифметические операции используют модулярное вычисление при использовании целочисленных типов, и при переполнении не возникает ошибок.
cumsum(a)[-1]может не быть равноsum(a)для значений с плавающей точкой, так какsumможет использовать процедуру суммирования по парам, уменьшая погрешность округления. См.sumдля получения более подробной информации.Примеры
>>> 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
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.cumsum.html