numpy.ma.array#

ma.array(data, dtype=None, copy=False, order=None, mask=np.False_, fill_value=None, keep_mask=True, hard_mask=False, shrink=True, subok=True, ndmin=0)[源代码]#

一个可能包含掩码值的数组类.

值为 True 的掩码会从任何计算中排除相应的元素.

Construction:

x = MaskedArray(data, mask=nomask, dtype=None, copy=False, subok=True,
                ndmin=0, fill_value=None, keep_mask=True, hard_mask=None,
                shrink=True, order=None)
参数:
dataarray_like

输入数据.

masksequence, 可选

掩码.必须可以转换为与 data 形状相同的布尔数组.True 表示掩码(即无效)数据.

dtypedtype, 可选

输出数据的类型.如果 dtype 为 None,则使用数据参数的类型(data.dtype).如果 dtype 不为 None 且与 data.dtype 不同,则执行复制操作.

copybool, 可选

是否复制输入数据(True),或者使用引用代替.默认是 False.

subokbool, 可选

如果可能的话,是否返回 MaskedArray 的子类(True)或普通的 MaskedArray.默认为 True.

ndminint, 可选

最小维度数.默认是 0.

fill_value标量,可选

在必要时用于填充掩码值的值.如果为 None,则根据数据类型使用默认值.

keep_maskbool, 可选

是否将 mask 与输入数据的掩码(如果有)结合(True),或者仅使用 mask 作为输出(False).默认为 True.

hard_maskbool, 可选

是否使用硬掩码.使用硬掩码时,被掩码的值不能被取消掩码.默认是 False.

shrinkbool, 可选

是否强制压缩空掩码.默认值为 True.

order{‘C’, ‘F’, ‘A’}, 可选

指定数组的顺序.如果顺序是 ‘C’,那么数组将是 C 连续顺序(最后一个索引变化最快).如果顺序是 ‘F’,那么返回的数组将是 Fortran 连续顺序(第一个索引变化最快).如果顺序是 ‘A’(默认),那么返回的数组可以是任何顺序(无论是 C 连续、Fortran 连续,甚至是非连续的),除非需要复制,在这种情况下它将是 C 连续的.

示例

>>> import numpy as np

mask 可以用一个与 data 形状相同的布尔值数组来初始化.

>>> data = np.arange(6).reshape((2, 3))
>>> np.ma.MaskedArray(data, mask=[[False, True, False],
...                               [False, False, True]])
masked_array(
  data=[[0, --, 2],
        [3, 4, --]],
  mask=[[False,  True, False],
        [False, False,  True]],
  fill_value=999999)

或者,可以通过传递一个标量布尔值将 mask 初始化为与 data 形状相同的均匀布尔数组:

>>> np.ma.MaskedArray(data, mask=False)
masked_array(
  data=[[0, 1, 2],
        [3, 4, 5]],
  mask=[[False, False, False],
        [False, False, False]],
  fill_value=999999)
>>> np.ma.MaskedArray(data, mask=True)
masked_array(
  data=[[--, --, --],
        [--, --, --]],
  mask=[[ True,  True,  True],
        [ True,  True,  True]],
  fill_value=999999,
  dtype=int64)

备注

推荐使用标量布尔值初始化 mask 的方法是使用 True/False 而不是 np.True_/np.False_.原因是 nomask 在内部表示为 np.False_.

>>> np.False_ is np.ma.nomask
True