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 -
Применить функцию к 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–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/reference/generated/numpy.apply_over_axes.html