numpy.ma
module原文:https://docs.scipy.org/doc/numpy/reference/maskedarray.generic.html
校对:(虚位以待)
屏蔽数组是可能具有缺失或无效条目的数组。numpy.ma
模块为numpy提供了几乎与工作相似的替换,支持带有掩码的数据数组。
在许多情况下,数据集可能由于无效数据的存在而不完整或受到污染。例如,传感器可能无法记录数据,或记录无效值。numpy.ma
模块提供了一种方便的方法来解决这个问题,通过引入masked数组。
掩码数组是标准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
modulenumpy.ma
模块的主要特征是MaskedArray
类,它是numpy.ndarray
的子类。类,其属性和方法在MaskedArray class部分中有更详细的描述。
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)
有关屏蔽数组的创建方法的完整讨论,请参见Constructing masked arrays一节。