numpy.ma.apply_over_axes
-
numpy.ma.apply_over_axes(func, a, axes)[source] -
Применение функции многократно по нескольким осям.
funcвызывается какres = func(a, axis), гдеaxisявляется первым элементомaxes. Результатresвызова функции должен иметь либо такие же размеры, какa, либо на одну размерность меньше. Еслиresимеет на одну размерность меньше, чемa, передaxisвставляется размерность. Затем вызовfuncповторяется для каждой оси вaxes, сresв качестве первого аргумента.- Параметры
-
-
funcfunction -
Эта функция должна принимать два аргумента,
func(a, axis). -
aarray_like -
Входной массив.
-
axesarray_like -
Оси, по которым применяется
func; элементы должны быть целыми числами.
-
- Возвращает
-
-
apply_over_axisndarray -
Массив вывода. Количество измерений такое же, как у
a, но форма может быть другой. Это зависит от того, меняет лиfuncформу своего вывода по отношению к входу.
-
См. также
-
apply_along_axis -
Применение функции к одномерным срезам массива вдоль заданной оси.
Примеры
>>> 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)Аргументы оси кортежа для ufuncs эквивалентны:
>>> np.ma.sum(a, axis=(0,2)).reshape((1,-1,1)) masked_array( data=[[[46], [--], [124]]], mask=[[[False], [ True], [False]]], fill_value=999999)
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.ma.apply_over_axes.html