numpy.ma.apply_over_axes
- ma.apply_over_axes(func, a, axes)[source]
-
Применять функцию многократно по нескольким осям.
funcвызывается какres = func(a, axis), гдеaxis— первый элементaxes. Результатresвызова функции должен иметь либо такие же размеры, как уa, либо на одну размерность меньше. Если уresразмерность меньше на единицу, чем уa, передaxisвставляется размерность. Затем вызовfuncповторяется для каждой оси вaxes, сresв качестве первого аргумента.- Parameters:
-
- funcfunction
-
Эта функция должна принимать два аргумента,
func(a, axis). - aarray_like
-
Входной массив.
- axesarray_like
-
Оси, по которым применяется
func; элементы должны быть целыми числами.
- Returns:
-
- apply_over_axisndarray
-
Выходной массив. Количество размерностей совпадает с
a, но форма может отличаться. Это зависит от того, какfuncизменяет форму своего выходного значения по сравнению с входным.
См. также
apply_along_axis-
Применение функции к 1-мерным срезам массива вдоль заданной оси.
Примеры
>>> a = np.ma.arange(24).reshape(2,3,4) >>> a[:,0,1] = np.ma.masked >>> a[:,1,:] = np.ma.masked >>> a masked_array( data=[[[0, --, 2, 3], [--, --, --, --], [8, 9, 10, 11]], [[12, --, 14, 15], [--, --, --, --], [20, 21, 22, 23]]], mask=[[[False, True, False, False], [ True, True, True, True], [False, False, False, False]], [[False, True, False, False], [ True, True, True, True], [False, False, False, False]]], fill_value=999999) >>> np.ma.apply_over_axes(np.ma.sum, a, [0,2]) masked_array( data=[[[46], [--], [124]]], mask=[[[False], [ True], [False]]], fill_value=999999)Кортежи аргументов оси для ufunc эквивалентны:
>>> np.ma.sum(a, axis=(0,2)).reshape((1,-1,1)) masked_array( data=[[[46], [--], [124]]], mask=[[[False], [ True], [False]]], fill_value=999999)
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.ma.apply_over_axes.html