numpy.ma.array#

ma.array(data, dtype=None, copy=False, order=None, mask=np.False_, fill_value=None, keep_mask=True, hard_mask=False, shrink=True, subok=True, ndmin=0)[原始碼]#

一個可能帶有遮罩值的陣列類別。

遮罩值為 True 時,會將對應的元素從任何計算中排除。

建構方式

x = MaskedArray(data, mask=nomask, dtype=None, copy=False, subok=True,
                ndmin=0, fill_value=None, keep_mask=True, hard_mask=None,
                shrink=True, order=None)
參數:
dataarray_like

輸入資料。

masksequence, optional

遮罩。必須可轉換為與 data 相同形狀的布林陣列。True 表示遮罩(即無效)資料。

dtypedtype, optional

輸出的資料類型。如果 dtype 為 None,則使用資料引數 (data.dtype) 的類型。如果 dtype 不為 None 且與 data.dtype 不同,則會執行複製。

copybool, optional

是否複製輸入資料 (True),或改為使用參考。預設為 False。

subokbool, optional

是否在可能的情況下傳回 MaskedArray 的子類別 (True) 或純 MaskedArray。預設為 True。

ndminint, optional

最小維度數。預設為 0。

fill_valuescalar, optional

必要時用於填補遮罩值的值。如果為 None,則使用基於資料類型的預設值。

keep_maskbool, optional

是否將 mask 與輸入資料的遮罩(如果有的話)組合 (True),或僅使用 mask 作為輸出 (False)。預設為 True。

hard_maskbool, optional

是否使用硬遮罩。使用硬遮罩時,遮罩值無法取消遮罩。預設為 False。

shrinkbool, optional

是否強制壓縮空遮罩。預設為 True。

order{‘C’, ‘F’, ‘A’}, optional

指定陣列的順序。如果 order 為 ‘C’,則陣列將為 C-contiguous 順序(最後一個索引變化最快)。如果 order 為 ‘F’,則傳回的陣列將為 Fortran-contiguous 順序(第一個索引變化最快)。如果 order 為 ‘A’(預設),則傳回的陣列可能為任何順序(C-、Fortran-contiguous,甚至是不連續的),除非需要複製,在這種情況下它將為 C-contiguous。

範例

>>> import numpy as np

mask 可以使用與 data 相同形狀的布林值陣列初始化。

>>> data = np.arange(6).reshape((2, 3))
>>> np.ma.MaskedArray(data, mask=[[False, True, False],
...                               [False, False, True]])
masked_array(
  data=[[0, --, 2],
        [3, 4, --]],
  mask=[[False,  True, False],
        [False, False,  True]],
  fill_value=999999)

或者,可以將 mask 初始化為與 data 相同形狀的同質布林陣列,方法是傳入純量布林值

>>> np.ma.MaskedArray(data, mask=False)
masked_array(
  data=[[0, 1, 2],
        [3, 4, 5]],
  mask=[[False, False, False],
        [False, False, False]],
  fill_value=999999)
>>> np.ma.MaskedArray(data, mask=True)
masked_array(
  data=[[--, --, --],
        [--, --, --]],
  mask=[[ True,  True,  True],
        [ True,  True,  True]],
  fill_value=999999,
  dtype=int64)

注意

使用純量布林值初始化 mask 的建議做法是使用 True/False 而不是 np.True_/np.False_。原因是 nomask 在內部表示為 np.False_

>>> np.False_ is np.ma.nomask
True