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