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 : массив_подобный
Входной массив.
axes : массив_подобный
Оси, по которым применяется
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.12.0/reference/generated/numpy.apply_over_axes.html