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, необязательно
Ось, по которой выполняется накопление; по умолчанию ноль.
dtype : код типа данных, необязательно
Тип данных, используемый для представления промежуточных результатов. По умолчанию совпадает с типом данных выходного массива, если он задан, или типом данных входного массива, если выходной массив не задан.
out : ndarray, необязательно
Местоположение, в которое сохраняется результат. Если не задан, возвращается вновь выделенный массив.
Возвращает: 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.]])
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.ufunc.accumulate.html