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, optional

输出掩码的数据类型. 默认情况下,输出掩码的数据类型为 MaskType (bool). 如果 dtype 是灵活的,则每个字段都具有 bool 数据类型. 当 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')])