numpy.cumsum()

Функция numpy.cumsum() возвращает массив накопленных (кумулятивных) сумм элементов вдоль заданной оси. Элемент с индексом i равен сумме всех элементов от 0 до i включительно.

Сигнатура

numpy.cumsum(a, axis=None, dtype=None, out=None)

Параметры

  • a — входной массив.

  • axis — ось, вдоль которой считается сумма. None (по умолчанию) — массив выпрямляется и суммируется как 1D.

  • dtype — тип результата (по умолчанию — тип входа, но для целых типов меньше платформенного int приводится к int).

  • out — массив-приёмник.

Возвращаемое значение

ndarray той же формы, что и a (или одномерный, если axis=None), содержащий накопленные суммы.

Примеры

Пример 1. Одномерный массив.

import numpy as np

a = np.array([1, 2, 3, 4, 5])
print(np.cumsum(a))
[ 1  3  6 10 15]

Пример 2. Двумерный массив без оси.

m = np.array([[1, 2, 3], [4, 5, 6]])
print(np.cumsum(m))
[ 1  3  6 10 15 21]

Пример 3. Сумма по столбцам и строкам.

m = np.array([[1, 2, 3], [4, 5, 6]])
print("По столбцам (axis=0):\n", np.cumsum(m, axis=0))
print("По строкам (axis=1):\n", np.cumsum(m, axis=1))
По столбцам (axis=0):
 [[1 2 3]
 [5 7 9]]
По строкам (axis=1):
 [[ 1  3  6]
 [ 4  9 15]]

Пример 4. Накопленный пробег робота.

# Расстояние, пройденное на каждом шаге, см
step_cm = np.array([5.0, 5.2, 4.8, 5.1, 5.0])
total = np.cumsum(step_cm)
print("Итого по шагам:", total)
Итого по шагам: [ 5.  10.2 15.  20.1 25.1]

Пример 5. Интеграл сигнала методом прямоугольников.

dt = 0.1
current = np.array([0.0, 0.5, 1.0, 1.5, 2.0])  # А
charge = np.cumsum(current) * dt               # Кл
print("Накопленный заряд:", charge)
Накопленный заряд: [0.  0.05 0.15 0.3  0.5 ]

См. также

Примечание

Лицензия и источники

Техническое описание функции адаптировано из официальной документации NumPy (https://numpy.org/doc/stable/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.