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,是否将其缩减为
nomask
.- dtypedtype, 可选
输出掩码的数据类型.默认情况下,输出掩码的dtype为MaskType(布尔值).如果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')])