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 : function -
Эта функция должна принимать два аргумента,
func(a, axis). -
a : array_like -
Входной массив.
-
axes : array_like -
Оси, по которым применяется
func; элементы должны быть целыми числами.
Возвращает: -
apply_over_axis : ndarray -
Массив вывода. Количество размерностей такое же, как у
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–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.apply_over_axes.html