numpy.ufunc.accumulate
-
ufunc.accumulate(array, axis=0, dtype=None, out=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 : код типа данных, необязательно
Тип данных, используемый для представления промежуточных результатов. По умолчанию используется тип данных выходного массива, если он предоставлен, или тип данных входного массива, если выходной массив не предоставлен.
out : ndarray, None или кортеж из ndarray и None, необязательно
Расположение, в которое сохраняется результат. Если не предоставлено или
None, возвращается новый массив. Для согласованности с ufunc.__call__, если передано в качестве ключевого аргумента, это может быть заключено в кортеж из одного элемента.Изменено в версии 1.13.0: Разрешены кортежи для ключевого аргумента.
Возвращаемые значения: r : ndarray
Накопленные значения. Если
outбыл предоставлен,rявляется ссылкой наout.Примеры
Примеры одномерного массива:
>>> np.add.accumulate([2, 3, 5]) array([ 2, 5, 10]) >>> np.multiply.accumulate([2, 3, 5]) array([ 2, 6, 30])
Примеры двумерного массива:
>>> 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.]])
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.ufunc.accumulate.html