numpy.ma 模块的常量#

除了 MaskedArray 类, numpy.ma 模块还定义了几个常量.

numpy.ma.masked#

masked 常量是 MaskedArray 的一个特殊情况,具有浮点数据类型和空形状.它用于测试掩码数组的特定条目是否被掩码,或者掩码掩码数组的一个或多个条目:

.. try_examples::
>>> import numpy as np
>>> x = np.ma.array([1, 2, 3], mask=[0, 1, 0])
>>> x[1] is np.ma.masked
True
>>> x[-1] = np.ma.masked
>>> x
masked_array(data=[1, --, --],
             mask=[False,  True,  True],
       fill_value=999999)
numpy.ma.nomask#

指示掩码数组没有无效条目的值.当不需要掩码时, nomask 在内部用于加速计算.它在内部表示为 np.False_ .

numpy.ma.masked_print_option#

在打印掩码数组时,用于代替缺失数据的字符串.默认情况下,此字符串为 '--' .

使用 set_display() 更改默认字符串.用法示例: numpy.ma.masked_print_option.set_display('X')'X' 替换缺失的数据.

MaskedArray#

class numpy.ma.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.sharedmask#

掩码的共享状态(只读).

ma.MaskedArray.hardmask#

指定是否可以通过赋值取消对值的屏蔽.

默认情况下,将确定值分配给掩码数组条目将取消对它们的屏蔽.当 hardmaskTrue 时,掩码不会通过赋值改变.

示例

>>> 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)

由于 MaskedArrayndarray 的一个子类,因此屏蔽数组也继承了 ndarray 实例的所有属性和特性.

MaskedArray.base 

如果内存来自其他对象,则为基对象.

MaskedArray.ctypes 

一个简化数组与ctypes模块交互的对象.

MaskedArray.dtype 

数组元素的数据类型.

MaskedArray.flags 

关于数组内存布局的信息.

MaskedArray.itemsize 

一个数组元素所占的字节长度.

MaskedArray.nbytes 

数组元素消耗的总字节数.

MaskedArray.ndim 

数组维度的数量.

MaskedArray.shape 

数组维度的元组.

MaskedArray.size 

数组中的元素数量.

MaskedArray.strides 

遍历数组时,在每个维度中步进的字节数的元组.

MaskedArray.imag 

掩码数组的虚部.

MaskedArray.real 

掩码数组的实部.

MaskedArray.flat 

返回一个扁平迭代器,或将 self 的扁平化版本设置为 value.

MaskedArray.__array_priority__ 

MaskedArray 方法#

参见

Array methods

转换#

MaskedArray.__float__ ()

转换为浮点数.

MaskedArray.__int__ ()

转换为 int.

MaskedArray.view ([dtype, type, fill_value])

返回 MaskedArray 数据的视图.

MaskedArray.astype (dtype[, order, casting, ...])

数组的副本,转换为指定的类型.

MaskedArray.byteswap ([inplace])

交换数组元素的字节

MaskedArray.compressed ()

将所有未屏蔽的数据作为 1-D 数组返回.

MaskedArray.filled ([fill_value])

返回自身的副本,屏蔽值用给定值填充.

MaskedArray.tofile (fid[, sep, format])

以二进制格式将掩码数组保存到文件.

MaskedArray.toflex ()

将掩码数组转换为灵活类型数组.

MaskedArray.tolist ([fill_value])

将掩码数组的数据部分作为分层 Python 列表返回.

MaskedArray.torecords ()

将掩码数组转换为灵活类型数组.

MaskedArray.tobytes ([fill_value, order])

将数组数据作为包含数组中原始字节的字符串返回.

形状操作#

对于 reshape,resize 和 transpose,单个元组参数可以用解释为 n 元组的 n 个整数替换.

MaskedArray.flatten ([order])

返回折叠成一维的数组副本.

MaskedArray.ravel ([order])

以视图的形式返回 self 的 1D 版本.

MaskedArray.reshape (s, \kwargs)

在不更改其数据的情况下为数组赋予新形状.

MaskedArray.resize (newshape[, refcheck, order])

MaskedArray.squeeze ([axis])

a 中删除长度为 1 的轴.

MaskedArray.swapaxes (axis1, axis2)

返回一个 axis1axis2 互换的数组视图.

MaskedArray.transpose (axes)

返回一个轴转置的数组视图.

MaskedArray.T 

转置数组的视图.

项目选择和操作#

对于采用 axis 关键字的数组方法,它默认为 None.如果axis为None,则将数组视为 1-D 数组. axis 的任何其他值表示操作应沿其进行的维度.

MaskedArray.argmax ([axis, fill_value, out, ...])

返回给定轴上最大值的索引数组.

MaskedArray.argmin ([axis, fill_value, out, ...])

返回给定轴上最小值索引的数组.

MaskedArray.argsort ([axis, kind, order, ...])

返回一个ndarray,其中包含沿指定轴对数组进行排序的索引.

MaskedArray.choose (choices[, out, mode])

使用索引数组从一组选择中构建一个新数组.

MaskedArray.compress (condition[, axis, out])

返回 condition 为 Truea .

MaskedArray.diagonal ([offset, axis1, axis2])

返回指定的对角线.

MaskedArray.fill (value)

用标量值填充数组.

MaskedArray.item (args)

复制数组的一个元素到标准Python标量并返回它.

MaskedArray.nonzero ()

返回非掩码且非零元素的索引.

MaskedArray.put (indices, values[, mode])

将存储索引位置设置为相应的值.

MaskedArray.repeat (repeats[, axis])

重复数组的元素.

MaskedArray.searchsorted (v[, side, sorter])

查找应将 v 的元素插入 a 中的索引,以保持顺序.

MaskedArray.sort ([axis, kind, order, ...])

对数组进行排序,就地排序

MaskedArray.take (indices[, axis, out, mode])

沿轴从掩码数组中获取元素.

Pickling 和 copy#

MaskedArray.copy ([order])

返回数组的副本.

MaskedArray.dump (file)

将数组的pickle转储到指定的文件中.

MaskedArray.dumps ()

以字符串形式返回数组的pickle.

计算#

MaskedArray.all ([axis, out, keepdims])

如果所有元素都计算为 True,则返回 True.

MaskedArray.anom ([axis, dtype])

计算给定轴上的异常(偏离算术平均值).

MaskedArray.any ([axis, out, keepdims])

如果 a 的任何元素计算为 True,则返回 True.

MaskedArray.clip ([min, max, out])

返回一个值被限制在 [min, max] 范围内的数组.

MaskedArray.conj ()

对所有元素取复共轭.

MaskedArray.conjugate ()

返回复共轭,按元素计算.

MaskedArray.cumprod ([axis, dtype, out])

返回给定轴上数组元素的累积乘积.

MaskedArray.cumsum ([axis, dtype, out])

返回给定轴上数组元素的累积和.

MaskedArray.max ([axis, out, fill_value, ...])

返回给定轴上的最大值.

MaskedArray.mean ([axis, dtype, out, keepdims])

返回给定轴上的数组元素的平均值.

MaskedArray.min ([axis, out, fill_value, ...])

返回给定轴上的最小值.

MaskedArray.prod ([axis, dtype, out, keepdims])

返回给定轴上数组元素的乘积.

MaskedArray.product ([axis, dtype, out, keepdims])

返回给定轴上数组元素的乘积.

MaskedArray.ptp ([axis, out, fill_value, ...])

沿给定维度返回(最大值 - 最小值)(即峰峰值).

MaskedArray.round ([decimals, out])

返回每个元素四舍五入到给定小数位后的值.

MaskedArray.std ([axis, dtype, out, ddof, ...])

返回给定轴上数组元素的标准差.

MaskedArray.sum ([axis, dtype, out, keepdims])

返回给定轴上的数组元素的和.

MaskedArray.trace ([offset, axis1, axis2, ...])

返回数组对角线元素的和.

MaskedArray.var ([axis, dtype, out, ddof, ...])

沿指定轴计算方差.

算术和比较运算#

比较运算符:#

MaskedArray.__lt__ (other)

返回 self<value.

MaskedArray.__le__ (other)

返回 self<=value.

MaskedArray.__gt__ (other)

返回 self>value.

MaskedArray.__ge__ (other)

返回 self>=value.

MaskedArray.__eq__ (other)

检查 other 是否逐个元素等于 self.

MaskedArray.__ne__ (other)

检查 other 是否不等于 self 的元素.

数组的真值 ( bool() ):#

MaskedArray.__bool__ (/)

如果 self 为真,则返回 True,否则返回 False

算术运算:#

MaskedArray.__abs__ (self)

MaskedArray.__add__ (other)

将 self 加到 other 上,并返回一个新的 masked array.

MaskedArray.__radd__ (other)

将其他值添加到自身,并返回一个新的 masked array.

MaskedArray.__sub__ (other)

从 self 中减去 other,并返回一个新的掩码数组.

MaskedArray.__rsub__ (other)

从其他值中减去自身,并返回一个新的 masked array.

MaskedArray.__mul__ (other)

将自身乘以其他,并返回一个新的 masked array.

MaskedArray.__rmul__ (other)

将其他值乘以自身,并返回一个新的 masked array.

MaskedArray.__truediv__ (other)

将 other 除以 self,并返回一个新的 masked array.

MaskedArray.__rtruediv__ (other)

将其他值除以自身,并返回一个新的 masked array.

MaskedArray.__floordiv__ (other)

将 other 除以 self,并返回一个新的 masked array.

MaskedArray.__rfloordiv__ (other)

将其他值除以自身,并返回一个新的 masked array.

MaskedArray.__mod__ (value, /)

返回 self%value.

MaskedArray.__rmod__ (value, /)

返回值 % self.

MaskedArray.__divmod__ (value, /)

返回 divmod(self, value).

MaskedArray.__rdivmod__ (value, /)

返回值 divmod(value, self).

MaskedArray.__pow__ (other)

将自身提升为其他值的幂,屏蔽潜在的 NaN/Inf

MaskedArray.__rpow__ (other)

将其他值提升为自身的幂,屏蔽潜在的 NaN/Inf

MaskedArray.__lshift__ (value, /)

返回 self<<value.

MaskedArray.__rlshift__ (value, /)

返回值 << self.

MaskedArray.__rshift__ (value, /)

返回 self>>value.

MaskedArray.__rrshift__ (value, /)

返回值 >> self.

MaskedArray.__and__ (value, /)

返回 self&value.

MaskedArray.__rand__ (value, /)

返回值 & self.

MaskedArray.__or__ (value, /)

返回 self|value.

MaskedArray.__ror__ (value, /)

返回值 | self.

MaskedArray.__xor__ (value, /)

返回 self^value.

MaskedArray.__rxor__ (value, /)

返回值 ^ self.

算术运算,原地操作:#

MaskedArray.__iadd__ (other)

将 other 就地添加到 self.

MaskedArray.__isub__ (other)

原地从自身减去其他.

MaskedArray.__imul__ (other)

原地将自身乘以其他.

MaskedArray.__itruediv__ (other)

原地 True 除自身除以其他.

MaskedArray.__ifloordiv__ (other)

原地整除自身除以其他.

MaskedArray.__imod__ (value, /)

返回 self%=value.

MaskedArray.__ipow__ (other)

原地将自身提升为其他值的幂.

MaskedArray.__ilshift__ (value, /)

返回 self<<=value.

MaskedArray.__irshift__ (value, /)

返回 self>>=value.

MaskedArray.__iand__ (value, /)

返回 self&=value.

MaskedArray.__ior__ (value, /)

返回 self|=value.

MaskedArray.__ixor__ (value, /)

返回 self^=value.

表示#

MaskedArray.__repr__ ()

字面字符串表示.

MaskedArray.__str__ ()

返回 str(self).

MaskedArray.ids ()

返回数据和掩码区域的地址.

MaskedArray.iscontiguous ()

返回一个布尔值,指示数据是否是连续的.

特殊方法#

对于标准库函数:

MaskedArray.__copy__ ()

如果对数组调用 copy.copy ,则使用.

MaskedArray.__deepcopy__ (memo, /)

如果对数组调用 copy.deepcopy ,则使用.

MaskedArray.__getstate__ ()

返回 masked array 的内部状态,用于 pickle 目的.

MaskedArray.__reduce__ ()

返回一个 3 元组以用于 pickle MaskedArray.

MaskedArray.__setstate__ (state)

为了进行 pickle 操作,恢复掩码数组的内部状态.

基本定制:

MaskedArray.__new__ (cls[, data, mask, ...])

从头创建一个新的 masked array.

MaskedArray.__array__ ([dtype], \[, copy])

对于 dtype 参数,如果未给出 dtype 或它与数组的数据类型匹配,则返回对 self 的新引用.

MaskedArray.__array_wrap__ (obj[, context, ...])

ufuncs 的特殊钩子.

容器定制:(参见 Indexing )

MaskedArray.__len__ (/)

返回 len(self).

MaskedArray.__getitem__ (indx)

x.__getitem__(y) <==> x[y]

MaskedArray.__setitem__ (indx, value)

x.__setitem__(i, y) <==> x[i]=y

MaskedArray.__delitem__ (key, /)

删除 self[key].

MaskedArray.__contains__ (key, /)

返回 bool(key in self).

特定方法#

处理掩码#

以下方法可用于访问有关掩码的信息或操作掩码.

MaskedArray.__setmask__ (mask[, copy])

设置掩码.

MaskedArray.harden_mask ()

强制掩码为硬掩码,防止通过赋值取消掩码.

MaskedArray.soften_mask ()

强制掩码为软掩码(默认值),允许通过赋值取消掩码.

MaskedArray.unshare_mask ()

复制掩码并将 sharedmask 标志设置为 False .

MaskedArray.shrink_mask ()

尽可能将掩码缩减为 nomask.

处理 fill_value#

MaskedArray.get_fill_value ()

掩码数组的填充值是一个标量.

MaskedArray.set_fill_value ([value])

统计缺失元素#

MaskedArray.count ([axis, keepdims])

计算给定轴上数组的非屏蔽元素.