当显示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()
trace
和sum
也用0填充,但prod
用1
填充。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/