當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。