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-мерным срезам массива вдоль заданной оси.
Примечания
Эта функция эквивалентна кортежу аргументов осей для переупорядочиваемых 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]]])
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.apply_over_axes.html