Spec-Zone.ru › NumPy 1.15

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

Примечания

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

© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.apply_over_axes.html

Spec-Zone.ru

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