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)
- 参数:
- data数组式
输入数据。
- mask序列,可选
掩码。必须可转换为与 data 形状相同的布尔值数组。True 表示被掩码(即无效)的数据。
- dtype数据类型,可选
输出的数据类型。如果
dtype
为 None,则使用数据参数 (data.dtype
) 的类型。如果dtype
不为 None 且与data.dtype
不同,则执行复制操作。- copy布尔值,可选
是否复制输入数据 (True),或者使用引用。默认值为 False。
- subok布尔值,可选
如果可能,是否返回
MaskedArray
的子类 (True),或返回一个普通MaskedArray
。默认值为 True。- ndmin整型,可选
最小维度数。默认值为 0。
- fill_value标量,可选
必要时用于填充掩码值的值。如果为 None,则使用基于数据类型的默认值。
- keep_mask布尔值,可选
是否将 mask 与输入数据的掩码(如果有)组合 (True),或者仅将 mask 用于输出 (False)。默认值为 True。
- hard_mask布尔值,可选
是否使用硬掩码。使用硬掩码时,被掩码的值无法被取消掩码。默认值为 False。
- shrink布尔值,可选
是否强制压缩空掩码。默认值为 True。
- order{‘C’, ‘F’, ‘A’},可选
指定数组的顺序。如果 order 是 ‘C’,则数组将采用 C 连续顺序(最后一维索引变化最快)。如果 order 是 ‘F’,则返回的数组将采用 Fortran 连续顺序(第一维索引变化最快)。如果 order 是 ‘A’(默认),则返回的数组可以是任意顺序(C 连续、Fortran 连续,甚至不连续),除非需要复制,在这种情况下它将是 C 连续的。
示例
>>> import numpy as np
可以通过与
data
形状相同的布尔值数组来初始化mask
。>>> 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)
注意
建议使用
True
/False
而不是np.True_
/np.False_
来初始化mask
为标量布尔值。原因是nomask
在内部表示为np.False_
。>>> np.False_ is np.ma.nomask True