NumPy 中文文档

version: 1.14.0

Built with Teadocs

NumPy.ma模块

# numpy.ma模块

# 解释

掩码数组是可能包含丢失或无效条目的数组。numpy.ma模块为numpy提供了这种数组结构的支持。

# 什么是掩码数组?

在许多情况下,数据集可能不完整或因无效数据的存在而受到污染。 例如,传感器可能无法记录数据或记录无效值。 numpy.ma模块通过引入掩码数组提供了解决此问题的便捷方法。

蒙面数组是标准numpy.ndarray和掩码的组合。掩码其中一个意思是“nomask”,表示关联数组的值无效,另外一个意思是布尔数组,它确定关联数组的每个元素是否有效。 当掩码的一个元素是False时,相关数组的相应元素是有效的,并且被称为未屏蔽。 当掩码的元素为True时,相关数组的相应元素被称为掩码(无效)。

该包确保在计算中不使用被屏蔽的项目。

作为示例,让我们考虑以下数据集:

>>> import numpy as np
>>> import numpy.ma as ma
>>> x = np.array([1, 2, 3, -1, 5])

我们希望将第四个条目标记为无效。 最简单的方法是创建一个掩码数组:

>>> mx = ma.masked_array(x, mask=[0, 0, 0, 1, 0])

我们现在可以计算数据集的平均值,而无需考虑无效数据:

>>> mx.mean()
2.75

# numpy.ma 模块

numpy.ma模块的主要特性是MaskedArray类,它是numpy.ndarray的子类。 在MaskedArray类部分中更详细地描述了类,其属性和方法。

numpy.ma模块可以用作numpy的补充:

>>> import numpy as np
>>> import numpy.ma as ma

要创建第二个元素无效的数组,我们会这样做:

>>> y = ma.array([1, 2, 3], mask = [0, 1, 0])

要创建一个掩盖数组,其中所有接近1.e20的值都无效,我们会这样做:

>>> z = masked_values([1.0, 1.e20, 3.0, 4.0], 1.e20)

有关掩码数组创建方法的完整讨论,请参阅掩码数组下面的章节。