numpy.ufunc.accumulate#

метод

универсальная функция.накапливать(массив, ось=0, dtype=None, выход=None)#

Накопить результат применения оператора ко всем элементам.

Для одномерного массива accumulate дает результаты, эквивалентные:

r = np.empty(len(A))
t = op.identity        # op = the ufunc being applied to A's  elements
for i in range(len(A)):
    t = op(t, A[i])
    r[i] = t
return r

Например, add.accumulate() эквивалентно np.cumsum().

Для многомерного массива accumulate применяется только вдоль одной оси (по умолчанию оси ноль; см. примеры ниже), поэтому повторное использование необходимо, если нужно накапливать по нескольким осям.

Параметры:
массивarray_like

Массив, над которым выполняется действие.

осьint, необязательный

Ось, вдоль которой применяется накопление; по умолчанию ноль.

dtypeкод типа данных, опционально

Тип данных, используемый для представления промежуточных результатов. По умолчанию равен типу данных выходного массива, если он предоставлен, или типу данных входного массива, если выходной массив не предоставлен.

выходndarray, None или кортеж из ndarray и None, опционально

Место, в которое сохраняется результат. Если не указано или None, возвращается вновь выделенный массив. Для согласованности с ufunc.__call__, если передано как ключевой аргумент, может быть Ellipses (out=..., что имеет тот же эффект, как None, поскольку массив всегда возвращается), или кортеж из одного элемента.

Возвращает:
rndarray

Накопленные значения. Если выход был предоставлен, r является ссылкой на выход.

Примеры

Примеры одномерных массивов:

>>> import numpy as np
>>> np.add.accumulate([2, 3, 5])
array([ 2,  5, 10])
>>> np.multiply.accumulate([2, 3, 5])
array([ 2,  6, 30])

Примеры 2-D массивов:

>>> I = np.eye(2)
>>> I
array([[1.,  0.],
       [0.,  1.]])

Накопление вдоль оси 0 (строк), вниз по столбцам:

>>> np.add.accumulate(I, 0)
array([[1.,  0.],
       [1.,  1.]])
>>> np.add.accumulate(I) # no axis specified = axis zero
array([[1.,  0.],
       [1.,  1.]])

Накопление вдоль оси 1 (столбцы), через строки:

>>> np.add.accumulate(I, 1)
array([[1.,  1.],
       [0.,  1.]])