Spec-Zone.ru › NumPy 2.0

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–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.apply_over_axes.html

Spec-Zone.ru

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