乘以蒙版数组会改变numpy

时间:2016-02-10 20:05:31

标签: python numpy

我有两个蒙版数组,两种形式都是:

masked_array(data =
 [[-- -- -- ..., -- -- --]
 [-- -- -- ..., -- -- --]
 [-- -- -- ..., -- -- --]
 ..., 
 [-- -- -- ..., -- -- --]
 [-- -- -- ..., -- -- --]
 [-- -- -- ..., -- -- --]],
             mask =
 [[ True  True  True ...,  True  True  True]
 [ True  True  True ...,  True  True  True]
 [ True  True  True ...,  True  True  True]
 ..., 
 [ True  True  True ...,  True  True  True]
 [ True  True  True ...,  True  True  True]
 [ True  True  True ...,  True  True  True]],
       fill_value = -9999.0)

当我将它们相乘时,fill_value会变为fill_value = 1e+20

为什么会这样?以及如何保留以前的填充值?这就是我对他们的看法:

array_a * array_b

1 个答案:

答案 0 :(得分:1)

您引用的行为是由this commit从2013年10月开始引入的,该行为从v1.10.0开始发布。

我不能100%确定是否应将其视为错误。这对我来说似乎是不合理的,但是文档似乎没有说明当ufunc应用于填充值时应该发生什么。 numpy GitHub跟踪器上有couple个相关open issues