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.17.0/reference/generated/numpy.apply_over_axes.html