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