Spec-Zone.ru › NumPy 1.16

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 : function

Эта функция должна принимать два аргумента, 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.16.1/reference/generated/numpy.apply_over_axes.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API