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в качестве первого аргумента.- Parameters
-
-
funcfunction -
Эта функция должна принимать два аргумента,
func(a, axis). -
aarray_like -
Массив входных данных.
-
axesarray_like -
Оси, по которым применяется
func; элементы должны быть целыми числами.
-
- Returns
-
-
apply_over_axisndarray -
Массив выходных данных. Количество размерностей такое же, как у
a, но форма может отличаться. Это зависит от того, какfuncизменяет форму своего результата относительно входных данных.
-
См. также
-
apply_along_axis -
Применение функции к одномерным срезам массива вдоль заданной оси.
Примечания
Эта функция эквивалентна аргументам осей кортежа для переупорядочиваемых функций 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]]])
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.apply_over_axes.html