numpy.ma.make_mask¶
-
numpy.ma.
make_mask
(m, copy=False, shrink=True, dtype=<type 'numpy.bool_'>)[source]¶ 从数组中创建一个布尔掩码。
返回m作为布尔掩码,如果需要或请求创建副本。函数可以接受可转换为整数的任何序列,也可以接受
nomask
。不要求内容必须是0和1,值0解释为False,其他都为True。参数: m:array_like
潜在面具。
copy:bool,可选
是否返回m(True)或m本身(False)的副本。
shrink:bool,可选
是否将m缩小为
nomask
(如果其所有值都为False)。dtype:dtype,可选
输出掩码的数据类型。默认情况下,输出掩码具有MaskType(bool)的dtype。如果dtype是灵活的,每个字段都有一个boolean dtype。在m为
nomask
时忽略此操作,在这种情况下始终返回nomask
。返回: result:ndarray
从m派生的布尔掩码。
例子
>>> import numpy.ma as ma >>> m = [True, False, True, True] >>> ma.make_mask(m) array([ True, False, True, True], dtype=bool) >>> m = [1, 0, 1, 1] >>> ma.make_mask(m) array([ True, False, True, True], dtype=bool) >>> m = [1, 0, 2, -3] >>> ma.make_mask(m) array([ True, False, True, True], dtype=bool)
收缩参数的影响。
>>> 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=bool)
使用灵活的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.int, np.int]}) >>> arr = np.array(arr, dtype=dtype) >>> arr array([(1, 0), (0, 1), (1, 0), (1, 0)], dtype=[('man', '<i4'), ('mouse', '<i4')]) >>> ma.make_mask(arr, dtype=dtype) array([(True, False), (False, True), (True, False), (True, False)], dtype=[('man', '|b1'), ('mouse', '|b1')])