当显示MaskedArray
时,我告诉数据,掩码和填充值。当然,数据和掩码非常重要。但是填充值的实际意义是什么?我甚至可以change it,但为什么我要这样做 - 填充值不是一个实际细节而没有实际影响吗?
换句话说:fill_value
是否会对未直接处理fill_value
的任何代码产生影响?
答案 0 :(得分:2)
查看Masked_Array
类代码,我看到了:
设置和获取fill_value
filled()
方法,返回一个副本,其中屏蔽的值由fill_value
替换。这是“直接”使用它。
将filled
作为计算的一部分进行调用的方法。
masked.all()
填充True
,然后填充普通数组all
。
masked.any()
填写False
。
masked.nonzero()
:
return narray(self.filled(0), copy=False).nonzero()
trace
和sum
也填0,但prod
填充1
。
argsort
(以及argmin
等其他方法)使用:
d = self.filled(fill_value).view(ndarray)
这些方法采用fill_value
参数,或使用self.fill_value
。对于这样的方法,用户可能对如何在排序或采用最小值/最大值时使用屏蔽值具有强烈的偏好。
所以fill_value
对于有效的数组计算至关重要。有些方法需要特殊值,其他方法可以使用用户想要的任何值。