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]]]) -
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.14.5/reference/generated/numpy.apply_over_axes.html