当显示MaskedArray时,我被告知数据、掩码和填充值。当然,数据和掩码非常重要。但填充值的实际意义是什么?我甚至可以change it,但我为什么要这样做-填充值不只是一个没有实际影响的实现细节吗?
换言之:fill_value是否对任何不直接寻址的代码有任何影响?

最佳答案

查看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()

tracesum也用0填充,但prod1填充。
argsort(以及其他类似于argmin的方法)使用:
 d = self.filled(fill_value).view(ndarray)

这些方法采用fill_value参数,或使用self.fill_value。对于这样的方法,用户潜在地对掩蔽值如何用于排序或取最小值/最大值有强烈的偏好。
因此fill_value对于有效的阵列计算至关重要。有些方法需要一个特殊的值,其他方法可以使用用户想要的任何内容。

关于python - 掩码数组的fill_value有什么实际影响(如果有)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33921579/

10-09 16:47