Spec-Zone.ru › NumPy 1.12

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 : массив_подобный

Входной массив.

axes : массив_подобный

Оси, по которым применяется 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.12.0/reference/generated/numpy.apply_over_axes.html

Spec-Zone.ru

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