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-мерным срезам массива вдоль заданной оси.
Примечания
Эта функция эквивалентна кортежам аргументов осей для переупорядочиваемых ufuncs с keepdims=True. Аргументы осей в виде кортежей для ufuncs доступны с версии 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]]])Аргументы осей в виде кортежей для ufuncs эквивалентны:
>>> 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.16.1/reference/generated/numpy.apply_over_axes.html