Spec-Zone.ru › NumPy 1.21

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 — одномерный массив.

См. также

sum

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

trapz

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

diff

Вычисление n-ой дискретной разности по заданной оси.

Примечания

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

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API