Spec-Zone.ru › NumPy 1.15

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 : array_like

Массив, над которым нужно произвести действие.

axis : int, optional

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

dtype : data-type code, optional

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

out : ndarray, None, or tuple of ndarray and None, optional

Местоположение, в которое сохраняется результат. Если не предоставлено или 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.15.4/reference/generated/numpy.ufunc.accumulate.html

Spec-Zone.ru

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