Spec-Zone.ru › NumPy 1.21

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

Параметры
funcфункция

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

aarray_like

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

axesarray_like

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

Возвращает
apply_over_axisndarray

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

См. также

apply_along_axis

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

Примечания

Эта функция эквивалентна кортежу аргументов осей для упорядочиваемых 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–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.apply_over_axes.html

Spec-Zone.ru

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