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).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]]]) -
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.apply_over_axes.html