numpy.ma.apply_over_axes#
- ma.apply_over_axes(func, a, axes)[源代码]#
在多个轴上重复应用函数。
func 的调用方式为 res = func(a, axis),其中 axis 是 axes 的第一个元素。函数调用结果 res 的维度必须与 a 相同或少一维。如果 res 的维度比 a 少一维,则在 axis 之前插入一个维度。然后,对于 axes 中的每个轴,重复调用 func,并将 res 作为第一个参数。
- 参数:
- func函数
此函数必须接受两个参数,func(a, axis)。
- a类数组
输入数组。
- axes类数组
应用 func 的轴;元素必须是整数。
- 返回:
- apply_over_axisndarray
输出数组。维度数量与 a 相同,但形状可能不同。这取决于 func 是否相对于其输入改变其输出的形状。
另请参阅
apply_along_axis
沿给定轴将函数应用于数组的一维切片。
示例
>>> import numpy as np >>> 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)