这个函数中numpy蒙面数组的目的是什么?

时间:2018-02-23 16:55:18

标签: python numpy

我的代码

def to_norm(self, x):
    if isinstance(x, np.ma.MaskedArray):
        data = x.filled()
        mask = x.mask
    else:
        data = x
        mask = None

据我所知,isinstance正在检查类型。相应的数组元素将被填充。但是如何屏蔽,它是如何工作的以及为什么?

1 个答案:

答案 0 :(得分:3)

np.ma.MaskedArray是常规numpy ndarray的子类。您可以在文档中阅读所有相关内容。

这种方法显然试图以一致的方式处理参数x,无论它是ndarray还是MaskedArray

屏蔽数组具有data属性和mask属性。 x.filled()返回data,屏蔽值填充x.fill_value

当您不想使用数组的某些值时,使用屏蔽数组,例如,如果它们是np.nan或等效的整数。 x.filled是使用这些数据的一种方式,将“坏值”替换为有用或无害的内容。

如果您阅读MaskedArray文档,我的说明会更有意义。