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 的屏蔽值会将相应的元素从任何计算中排除.
构造函数:
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, optional
掩码.必须可以转换为与 data 具有相同形状的布尔数组.True 表示被屏蔽(即无效)的数据.
- dtypedtype,可选
输出的数据类型.如果 dtype 为 None,则使用数据参数的类型(
data.dtype).如果 dtype 不为 None 且与data.dtype不同,则执行复制.- copybool,可选
是否复制输入数据 (True),或者改为使用引用.默认为 False.
- subokbool,可选
如果可能 (True) 是否返回
MaskedArray的子类,或是返回纯MaskedArray.默认为 True.- ndminint, optional
最小维度数.默认为 0.
- fill_value标量,可选
必要时用于填充屏蔽值的值.如果为 None,则使用基于数据类型的默认值.
- keep_maskbool,可选
是否将 mask 与输入数据的掩码(如果有)组合 (True),或者仅将 mask 用于输出 (False).默认为 True.
- hard_maskbool,可选
是否使用硬掩码.使用硬掩码时,屏蔽值无法取消屏蔽.默认为 False.
- shrinkbool,可选
是否强制压缩空掩码.默认为 True.
- order{‘C’, ‘F’, ‘A’},可选
指定数组的顺序.如果 order 是 ‘C’,则数组将是 C-contiguous 顺序(最后一个索引变化最快).如果 order 是 ‘F’,则返回的数组将是 Fortran-contiguous 顺序(第一个索引变化最快).如果 order 是 ‘A’(默认),则返回的数组可以是任何顺序(无论是 C-, Fortran-contiguous 甚至是 discontiguous),除非需要复制,在这种情况下它将是 C-contiguous.
示例
>>> 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