Spec-Zone.ru › NumPy 1.14

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

Spec-Zone.ru

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