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