Spec-Zone.ru › NumPy 1.19

numpy.apply_over_axes

numpy.apply_over_axes(func, a, axes) [source]

Применять функцию многократно по нескольким осям.

func вызывается как res = func(a, axis), где axis — первый элемент axes. Результат res вызова функции должен иметь либо такие же размерности, как a, либо на одну размерность меньше. Если res имеет на одну размерность меньше, чем a, перед axis вставляется размерность. Вызов func повторяется для каждой оси в axes, с res в качестве первого аргумента.

Parameters
funcfunction

Эта функция должна принимать два аргумента, func(a, axis).

aarray_like

Массив входных данных.

axesarray_like

Оси, по которым применяется func; элементы должны быть целыми числами.

Returns
apply_over_axisndarray

Массив выходных данных. Количество размерностей такое же, как у a, но форма может отличаться. Это зависит от того, как func изменяет форму своего результата относительно входных данных.

См. также

apply_along_axis

Применение функции к одномерным срезам массива вдоль заданной оси.

Примечания

Эта функция эквивалентна аргументам осей кортежа для переупорядочиваемых функций ufunc с keepdims=True. Аргументы осей кортежа для функций ufunc доступны с версии 1.7.0.

Примеры

>>> a = np.arange(24).reshape(2,3,4)
>>> a
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],
       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])

Суммирование по осям 0 и 2. Результат имеет такое же количество размерностей, как исходный массив:

>>> np.apply_over_axes(np.sum, a, [0,2])
array([[[ 60],
        [ 92],
        [124]]])

Аргументы осей кортежа для функций ufunc эквивалентны:

>>> np.sum(a, axis=(0,2), keepdims=True)
array([[[ 60],
        [ 92],
        [124]]])

© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.apply_over_axes.html

Spec-Zone.ru

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