Spec-Zone.ru › NumPy 1.13

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-мерным срезам массива вдоль заданной оси.

Примечания

Эта функция эквивалентна кортежу аргументов оси для переупорядочиваемых 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]]])

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

Spec-Zone.ru

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