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