Spec-Zone.ru › NumPy 1.20

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 в качестве первого аргумента.

Параметры
funcfunction

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

aarray_like

Входной массив.

axesarray_like

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

Возвращает
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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.apply_over_axes.html

Spec-Zone.ru

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