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。當 m 為
nomask
時,會忽略此參數,在這種情況下,始終傳回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')])