上一主题

numpy.ma.append

下一主题

numpy.ma.make_mask_none

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。mnomask时忽略此操作,在这种情况下始终返回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')])