Spec-Zone.ru › NumPy 1.11

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]]])

© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.apply_over_axes.html

Spec-Zone.ru

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