如果值不在数组中,而是在标量中,np.ma.masked_equal
或者不会创建 False 掩码,我对此感到有些惊讶。masked_values
例子 :
y = np.arange(10)
yy = np.ma.masked_equal(y,0)
产生一个掩码数组,掩码是一个包含 10 个 False 值的数组,而
y = np.arange(1,10)
yy = np.ma.masked_equal(y,0)
产生一个掩码数组,掩码设置为标量 False。结果,鉴于在我的代码中我事先不知道掩码是否与数组中的任何条目匹配,我不得不明确检查:
yy=np.ma.masked_values(y,0)
if np.isscalar(yy.mask):
yy.mask=np.zeros(y.shape,dtype=bool)
这对我来说似乎是一种过度劳累。这种行为的原因是什么,有没有办法避免它?