Spec-Zone.ru › NumPy 1.11

numpy.apply_along_axis

numpy.apply_along_axis(func1d, axis, arr, *args, **kwargs) [source]

Применить функцию к 1-мерным срезам вдоль заданной оси.

Выполнить func1d(a, *args) , где func1d работает с 1-мерными массивами, а a представляет собой 1-мерный срез arr вдоль axis.

Параметры:

func1d : функция

Эта функция должна принимать 1-мерные массивы. Она применяется к 1-мерным срезам arr вдоль указанной оси.

axis : целое число

Ось, вдоль которой происходит срез arr.

arr : ndarray

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

args : любые

Дополнительные аргументы для func1d.

kwargs: любые

Дополнительные именованные аргументы для func1d.

Добавлена в версии 1.9.0.

Возвращает:

apply_along_axis : ndarray

Выходной массив. Форма outarr идентична форме arr, за исключением измерения axis, где длина outarr равна размеру возвращаемого значения func1d. Если func1d возвращает скаляр, outarr будет иметь на одну размерность меньше, чем arr.

См. также

apply_over_axes
Применить функцию многократно к нескольким осям.

Примеры

>>> def my_func(a):
...     """Average first and last element of a 1-D array"""
...     return (a[0] + a[-1]) * 0.5
>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]])
>>> np.apply_along_axis(my_func, 0, b)
array([ 4.,  5.,  6.])
>>> np.apply_along_axis(my_func, 1, b)
array([ 2.,  5.,  8.])

Для функции, не возвращающей скаляр, количество измерений в outarr такое же, как в arr.

>>> b = np.array([[8,1,7], [4,3,9], [5,2,6]])
>>> np.apply_along_axis(sorted, 1, b)
array([[1, 7, 8],
       [3, 4, 9],
       [2, 5, 6]])

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

Spec-Zone.ru

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