Spec-Zone.ru › NumPy 2.0

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

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

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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.cumsum.html

Spec-Zone.ru

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