Опубликован: 18.12.2023 88
Вычисления нарастающим итогом суммы элементов числовой последовательности является довольно частой операцией в аналитических и экономических расчетах.
Для быстрого и удобного выполнения таких расчетов Python предоставляет различные инструменты, в том числе:
cumsum()
из библиотеки NumPy;accumulate()
встроенного модуля itertools
(подробнее можно посмотреть здесь).Функция numpy.cumsum()
принимает в качестве обязательного аргумента массив числовых данных и возвращает кумулятивную сумму элементов по заданной оси (т.е. сумму элементов нарастающим итогом).
Синтаксис: numpy.cumsum( arr, axis=None, dtype=None, out=None )
arr
- массив числовых данных, используемый для расчета суммы нарастающим итогом;axis
- ось массива, вдоль которой вычисляется кумулятивная сумма элементов (по умолчанию None);dtype
- тип выходных данных;out
- место сохранения выходного массива.Примеры использования функции numpy.cumsum()
для расчетов кумулятивной суммы элементов числовой последовательности:
import numpy as np
# сумма нарастающим итогом целых чисел от 0 до 15
result = list(np.cumsum(range(0, 15)))
print(result)
[0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105]
# сумма элементов плоского массива нарастающим итогом
arr = np.array([5, 8, 12, 17, 19, 25])
result = np.cumsum(arr)
print(result)
[ 5 13 25 42 61 86]
# сумма элементов 2D массива нарастающим итогом построчно
arr = np.array([[1, 4, 0],
[7, 0, 9],
[5, 0, 3],
[12, 0, 5]])
result = np.cumsum( arr, axis=1 ) # axis по оси равной 1 (построчно)
print(result)
[[ 1 5 5]
[ 7 7 16]
[ 5 5 8]
[12 12 17]]
Таким образом, функция numpy.cumsum()
позволяет легко вычислять кумулятивную сумму элементов числовой последовательности или массива, с указанием оси (направления) массива для вычисления суммы элементов нарастающим итогом.
Методы преобразования списка в строку и обратно
Фильтрация элементов итератора с помощью bool-списка функции itertools.compress()
Пропуск не нужных элементов последовательности с помощью itertools.dropwhile()
Комментариев нет.