我的代码
def to_norm(self, x):
if isinstance(x, np.ma.MaskedArray):
data = x.filled()
mask = x.mask
else:
data = x
mask = None
据我所知,isinstance
正在检查类型。相应的数组元素将被填充。但是如何屏蔽,它是如何工作的以及为什么?
答案 0 :(得分:3)
np.ma.MaskedArray
是常规numpy ndarray
的子类。您可以在文档中阅读所有相关内容。
这种方法显然试图以一致的方式处理参数x
,无论它是ndarray
还是MaskedArray
。
屏蔽数组具有data
属性和mask
属性。 x.filled()
返回data
,屏蔽值填充x.fill_value
。
当您不想使用数组的某些值时,使用屏蔽数组,例如,如果它们是np.nan
或等效的整数。 x.filled
是使用这些数据的一种方式,将“坏值”替换为有用或无害的内容。
如果您阅读MaskedArray
文档,我的说明会更有意义。