Python 屏蔽数组的“fill_value”有什么实际影响(如果有)?

Python 屏蔽数组的“fill_value”有什么实际影响(如果有)?,python,arrays,numpy,masked-array,Python,Arrays,Numpy,Masked Array,显示遮罩darray时,系统会告诉我数据、遮罩和填充值。当然,数据和掩码非常重要。但填充值的实际意义是什么?我甚至可以,但我为什么要这样做呢?填充值不只是一个没有实际影响的实现细节吗 换句话说,fill\u值是否对任何不直接寻址的代码有任何影响?查看屏蔽数组类代码,我看到: 设置和获取填充值的方法 filled()方法,该方法返回一个副本,其中屏蔽值替换为fill\u值。这是它的“直接”使用 调用填充的方法作为计算的一部分 masked.all()填充True,然后执行普通数组all mas

显示
遮罩darray
时,系统会告诉我数据、遮罩和填充值。当然,数据和掩码非常重要。但填充值的实际意义是什么?我甚至可以,但我为什么要这样做呢?填充值不只是一个没有实际影响的实现细节吗


换句话说,
fill\u值
是否对任何不直接寻址的代码有任何影响?

查看
屏蔽数组
类代码,我看到:

  • 设置和获取填充值的方法

  • filled()
    方法,该方法返回一个副本,其中屏蔽值替换为
    fill\u值。这是它的“直接”使用

  • 调用
    填充的方法作为计算的一部分

masked.all()
填充
True
,然后执行普通数组
all

masked.any()
填充
False

屏蔽。非零()

return narray(self.filled(0), copy=False).nonzero()
trace
sum
也用0填充,但
prod
1
填充

argsort
(以及其他方法,如
argmin
)使用:

这些方法采用
fill\u值
参数,或使用
self.fill\u值
。对于这样的方法,用户可能对如何在排序或取最小值/最大值时使用屏蔽值有强烈的偏好


因此,
fill_值
对于高效的数组计算至关重要。有些方法需要一个特殊的值,其他方法可以使用用户想要的任何方法。

Heh,这是一个好问题(但可能不是一个好问题)。我在向上投票和投票结束之间摇摆不定。:)这不是一个实现细节,而是每个数组的一个参数。@WarrenWeckesser我重新措辞,以避免给人留下问题主观的印象。我希望现在更清楚了。首先,它将默认参数指定为
masked\u array.filled()
 d = self.filled(fill_value).view(ndarray)