numpy.ma.make_mask#

ma.make_mask(m, copy=False, shrink=True, dtype=<class 'numpy.bool'>)[原始碼]#

從陣列建立布林遮罩。

傳回 m 作為布林遮罩,如有必要或要求,則建立副本。此函式可以接受任何可轉換為整數的序列,或 nomask。不要求內容必須是 0 和 1,值 0 解釋為 False,其他所有值都解釋為 True。

參數:
marray_like

潛在的遮罩。

copybool,選用

是否傳回 m 的副本 (True) 或 m 本身 (False)。

shrinkbool,選用

如果 m 的所有值皆為 False,是否將 m 縮減為 nomask

dtypedtype,選用

輸出遮罩的資料型別。預設情況下,輸出遮罩的 dtype 為 MaskType (bool)。如果 dtype 是彈性的,則每個欄位都具有布林 dtype。當 mnomask 時,會忽略此參數,在這種情況下,始終傳回 nomask

傳回值:
resultndarray

m 衍生的布林遮罩。

範例

>>> import numpy as np
>>> import numpy.ma as ma
>>> m = [True, False, True, True]
>>> ma.make_mask(m)
array([ True, False,  True,  True])
>>> m = [1, 0, 1, 1]
>>> ma.make_mask(m)
array([ True, False,  True,  True])
>>> m = [1, 0, 2, -3]
>>> ma.make_mask(m)
array([ True, False,  True,  True])

shrink 參數的效果。

>>> m = np.zeros(4)
>>> m
array([0., 0., 0., 0.])
>>> ma.make_mask(m)
False
>>> ma.make_mask(m, shrink=False)
array([False, False, False, False])

使用彈性的 dtype

>>> m = [1, 0, 1, 1]
>>> n = [0, 1, 0, 0]
>>> arr = []
>>> for man, mouse in zip(m, n):
...     arr.append((man, mouse))
>>> arr
[(1, 0), (0, 1), (1, 0), (1, 0)]
>>> dtype = np.dtype({'names':['man', 'mouse'],
...                   'formats':[np.int64, np.int64]})
>>> arr = np.array(arr, dtype=dtype)
>>> arr
array([(1, 0), (0, 1), (1, 0), (1, 0)],
      dtype=[('man', '<i8'), ('mouse', '<i8')])
>>> ma.make_mask(arr, dtype=dtype)
array([(True, False), (False, True), (True, False), (True, False)],
      dtype=[('man', '|b1'), ('mouse', '|b1')])