当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy ma.apply_over_axes用法及代码示例


本文简要介绍 python 语言中 numpy.ma.apply_over_axes 的用法。

用法:

ma.apply_over_axes(func, a, axes)

在多个轴上重复应用一个函数。

func 被称为 res = func(a, axis),其中axis是轴的第一个元素。函数调用的结果 res 必须具有与 a 相同的维度或少一维。如果 res 比 a 少一个维度,则在轴之前插入一个维度。然后对轴中的每个轴重复对 func 的调用,并将 res 作为第一个参数。

参数

func 函数

这个函数必须有两个参数,func(a,axis)。

a array_like

输入数组。

axes array_like

应用 func 的轴;元素必须是整数。

返回

apply_over_axis ndarray

输出数组。维数与a相同,但形状可以不同。这取决于 func 是否改变其输出相对于其输入的形状。

例子

>>> 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)

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.ma.apply_over_axes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。