numpy.ma
模块的常量#
除了 MaskedArray
类之外,numpy.ma
模块还定义了几个常量。
- numpy.ma.masked#
masked
常量是MaskedArray
的一个特例,具有 float 数据类型和空形状。它用于测试掩码数组的特定条目是否被掩码,或掩码掩码数组的一个或多个条目>>> import numpy as np >>> x = ma.array([1, 2, 3], mask=[0, 1, 0]) >>> x[1] is ma.masked True >>> x[-1] = ma.masked >>> x masked_array(data=[1, --, --], mask=[False, True, True], fill_value=999999)
- numpy.ma.masked_print_option#
打印掩码数组时,用于代替缺失数据的字符串。默认情况下,此字符串为
'--'
。使用
set_display()
更改默认字符串。用法示例:numpy.ma.masked_print_option.set_display('X')
将缺失数据替换为'X'
。
MaskedArray
类#
ndarray
的一个子类,旨在操作带有缺失数据的数值数组。
MaskedArray
的一个实例可以被认为是几个元素的组合
data
,作为任何形状或数据类型的常规numpy.ndarray
(数据)。与数据具有相同形状的布尔
mask
,其中True
值表示数据的相应元素无效。特殊值nomask
也可用于没有命名字段的数组,并表示没有数据无效。fill_value
,一个值,可用于替换无效条目,以便返回标准的numpy.ndarray
。
掩码数组的属性和特性#
另请参阅
- ma.MaskedArray.data#
返回基础数据,作为掩码数组的视图。
如果基础数据是
numpy.ndarray
的子类,则它将作为子类返回。>>> x = np.ma.array(np.matrix([[1, 2], [3, 4]]), mask=[[0, 1], [1, 0]]) >>> x.data matrix([[1, 2], [3, 4]])
可以通过
baseclass
属性访问数据的类型。
- ma.MaskedArray.mask#
当前掩码。
- ma.MaskedArray.recordmask#
如果数组没有命名字段,则获取或设置数组的掩码。对于结构化数组,返回一个布尔值的 ndarray,如果**所有**字段都被掩码,则条目为
True
,否则为False
>>> x = np.ma.array([(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)], ... mask=[(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)], ... dtype=[('a', int), ('b', int)]) >>> x.recordmask array([False, False, True, False, False])
- ma.MaskedArray.fill_value#
掩码数组的填充值是标量。设置时,None 将设置为基于数据类型的默认值。
示例
>>> import numpy as np >>> for dt in [np.int32, np.int64, np.float64, np.complex128]: ... np.ma.array([0, 1], dtype=dt).get_fill_value() ... np.int64(999999) np.int64(999999) np.float64(1e+20) np.complex128(1e+20+0j)
>>> x = np.ma.array([0, 1.], fill_value=-np.inf) >>> x.fill_value np.float64(-inf) >>> x.fill_value = np.pi >>> x.fill_value np.float64(3.1415926535897931)
重置为默认值
>>> x.fill_value = None >>> x.fill_value np.float64(1e+20)
- ma.MaskedArray.baseclass#
基础数据的类(只读)。
掩码的共享状态(只读)。
- ma.MaskedArray.hardmask#
指定是否可以通过赋值取消掩码值。
默认情况下,将确定的值赋值给掩码数组条目将取消它们的掩码。当
hardmask
为True
时,掩码不会通过赋值更改。示例
>>> import numpy as np >>> x = np.arange(10) >>> m = np.ma.masked_array(x, x>5) >>> assert not m.hardmask
由于 m 具有软掩码,因此赋值元素值会取消该元素的掩码
>>> m[8] = 42 >>> m masked_array(data=[0, 1, 2, 3, 4, 5, --, --, 42, --], mask=[False, False, False, False, False, False, True, True, False, True], fill_value=999999)
硬化后,掩码不受赋值的影响
>>> hardened = np.ma.harden_mask(m) >>> assert m.hardmask and hardened is m >>> m[:] = 23 >>> m masked_array(data=[23, 23, 23, 23, 23, 23, --, --, 23, --], mask=[False, False, False, False, False, False, True, True, False, True], fill_value=999999)
由于 MaskedArray
是 ndarray
的子类,因此掩码数组也继承了 ndarray
实例的所有属性和特性。
如果内存来自其他对象,则为基础对象。 |
|
一个用于简化数组与 ctypes 模块交互的对象。 |
|
数组元素的数据类型。 |
|
有关数组内存布局的信息。 |
|
一个数组元素以字节为单位的长度。 |
|
数组元素消耗的总字节数。 |
|
数组的维度数。 |
|
数组维度的元组。 |
|
数组中元素的数量。 |
|
遍历数组时,每个维度步长的字节数元组。 |
|
掩码数组的虚部。 |
|
掩码数组的实部。 |
|
返回一个扁平迭代器,或将 self 的扁平版本设置为值。 |
|
MaskedArray
方法#
另请参阅
转换#
转换为 float。 |
|
转换为 int。 |
|
|
返回 MaskedArray 数据的视图。 |
|
数组的副本,强制转换为指定的类型。 |
|
交换数组元素的字节 |
将所有未掩码的数据作为 1-D 数组返回。 |
|
|
返回自身的副本,其中被屏蔽的值用给定值填充。 |
|
以二进制格式将屏蔽数组保存到文件中。 |
将屏蔽数组转换为灵活类型的数组。 |
|
|
将屏蔽数组的数据部分作为分层 Python 列表返回。 |
将屏蔽数组转换为灵活类型的数组。 |
|
|
与 tobytes 兼容的别名,行为完全相同。 |
|
将数组数据作为包含数组中原始字节的字符串返回。 |
形状操作#
对于 reshape、resize 和 transpose,单个元组参数可以用 n
个整数替换,这些整数将被解释为 n 元组。
|
返回折叠成一维的数组副本。 |
|
返回自身的 1D 版本,作为视图。 |
|
在不更改数据的情况下为数组赋予新的形状。 |
|
|
|
从 a 中删除长度为 1 的轴。 |
|
返回数组的视图,其中 axis1 和 axis2 互换。 |
|
返回轴转置的数组视图。 |
转置数组的视图。 |
项目选择和操作#
对于接受 axis
关键字的数组方法,它默认为 None。如果 axis 为 None,则将数组视为 1-D 数组。 axis
的任何其他值都表示操作应沿其进行的维度。
|
返回给定轴上最大值的索引数组。 |
|
返回沿给定轴的最小值的索引数组。 |
|
返回沿指定轴对数组进行排序的索引的 ndarray。 |
|
使用索引数组从一组选择中构造新数组。 |
|
返回 condition 为 |
|
返回指定的对角线。 |
|
用标量值填充数组。 |
|
将数组的一个元素复制到标准的 Python 标量并返回它。 |
返回非零的未屏蔽元素的索引。 |
|
|
将存储索引的位置设置为对应的值。 |
|
重复数组的元素。 |
|
查找应将 v 的元素插入到 a 中以保持顺序的索引。 |
|
就地对数组进行排序 |
|
沿轴从屏蔽数组中提取元素。 |
Pickling 和复制#
|
返回数组的副本。 |
|
将数组的 pickle 转储到指定的文件中。 |
将数组的 pickle 作为字符串返回。 |
计算#
|
如果所有元素的值均为 True,则返回 True。 |
|
计算沿给定轴的异常值(与算术平均值的偏差)。 |
|
如果 a 的任何元素的值为 True,则返回 True。 |
|
返回一个数组,其值限制为 |
复共轭所有元素。 |
|
返回逐元素的复共轭。 |
|
|
返回数组元素在给定轴上的累积乘积。 |
|
返回数组元素在给定轴上的累积和。 |
|
返回沿给定轴的最大值。 |
|
返回数组元素沿给定轴的平均值。 |
|
返回沿给定轴的最小值。 |
|
返回给定轴上数组元素的乘积。 |
|
返回给定轴上数组元素的乘积。 |
|
返回给定维度上的(最大值 - 最小值),即峰峰值。 |
|
返回每个元素四舍五入到给定小数位数的值。 |
|
返回给定轴上数组元素的标准差。 |
|
返回给定轴上数组元素的总和。 |
|
返回数组对角线上的总和。 |
|
计算指定轴上的方差。 |
算术和比较运算#
比较运算符:#
|
返回 self<value。 |
|
返回 self<=value。 |
|
返回 self>value。 |
|
返回 self>=value。 |
|
逐元素检查 other 是否等于 self。 |
|
逐元素检查 other 是否不等于 self。 |
数组的真值 (bool()
):#
如果 self 为真,则为 True,否则为 False。 |
算术:#
|
|
|
将 self 加到 other,并返回一个新的掩码数组。 |
|
将 other 加到 self,并返回一个新的掩码数组。 |
|
从 self 中减去 other,并返回一个新的掩码数组。 |
|
从 other 中减去 self,并返回一个新的掩码数组。 |
|
将 self 乘以 other,并返回一个新的掩码数组。 |
|
将 other 乘以 self,并返回一个新的掩码数组。 |
|
将 other 除以 self,并返回一个新的掩码数组。 |
|
将 other 除以 self,并返回一个新的掩码数组。 |
|
将 self 除以 other,并返回一个新的掩码数组。 |
|
将 other 除以 self,并返回一个新的掩码数组。 |
|
将 self 除以 other,并返回一个新的掩码数组。 |
|
返回 self%value。 |
|
返回 value%self。 |
|
返回 divmod(self, value)。 |
|
返回 divmod(value, self)。 |
|
将 self 提高到 other 次幂,屏蔽潜在的 NaN/Inf。 |
|
将 other 提高到 self 次幂,屏蔽潜在的 NaN/Inf。 |
|
返回 self<<value。 |
|
返回 value<<self。 |
|
返回 self>>value。 |
|
返回 value>>self。 |
|
返回 self&value。 |
|
返回 value&self。 |
|
返回 self|value。 |
|
返回 value|self。 |
|
返回 self^value。 |
|
返回 value^self。 |
算术,就地操作:#
|
将 other 就地加到 self。 |
|
从 self 中就地减去 other。 |
|
将 self 就地乘以 other。 |
|
将 self 就地除以 other。 |
|
将 self 就地真除以 other。 |
|
原地对 self 进行向下整除 other 的操作。 |
|
返回 self%=value。 |
|
原地将 self 提升为 other 的幂。 |
|
返回 self<<=value。 |
|
返回 self>>=value。 |
|
返回 self&=value。 |
|
返回 self|=value。 |
|
返回 self^=value。 |
表示#
字面字符串表示。 |
|
返回 str(self)。 |
|
返回数据和掩码区域的地址。 |
|
返回一个布尔值,指示数据是否是连续的。 |
特殊方法#
用于标准库函数
如果在数组上调用 |
|
|
如果在数组上调用 |
返回被屏蔽数组的内部状态,用于 pickle 目的。 |
|
返回一个 3 元组,用于 pickle MaskedArray。 |
|
|
恢复被屏蔽数组的内部状态,用于 pickle 目的。 |
基本自定义
|
从头开始创建一个新的被屏蔽数组。 |
|
对于 |
|
用于 ufunc 的特殊钩子。 |
容器自定义:(请参阅 索引)
返回 len(self)。 |
|
|
x.__getitem__(y) <==> x[y] |
|
x.__setitem__(i, y) <==> x[i]=y |
|
删除 self[key]。 |
|
返回 key in self。 |
特定方法#
处理掩码#
以下方法可用于访问有关掩码的信息或操作掩码。
|
设置掩码。 |
强制将掩码设为硬掩码,防止通过赋值取消屏蔽。 |
|
强制将掩码设为软掩码(默认),允许通过赋值取消屏蔽。 |
|
复制掩码并将 sharedmask 标志设置为 |
|
尽可能将掩码减少为 nomask。 |
处理 fill_value#
被屏蔽数组的填充值是一个标量。 |
|
|
计算缺失的元素#
|
计算沿给定轴的数组的非屏蔽元素。 |