添加 numpy 零数组和屏蔽数组

Adding numpy zero array and masked array

我有 foll.. 2 个 numpy 数组:

arr_a = numpy.zeros(shape=(3, 3))

arr_b 是第二个 numpy 数组,但它被屏蔽值 -9999.0

如果我这样做:

arr_a += arr_b

那么生成的 arr_a 不会保留掩码。如何在 return 中获取保留掩码的数组?

我假设 arr_bnumpy.ma.array 的一个实例。在这种情况下,numpy 的语义意味着 arr_a += arr_b 正在添加数组 就地 。因此,它肯定不能将其类型从 numpy.array 更改为 numpy.ma.array.

这与 arr_a + arr_b 形成对比,后者正在创建一个 new 输出数组,因此可以根据需要自由分配它。

如果您希望对掩码数组进行就地添加,您也必须将目标 (arr_a) 转换为掩码数组。

>>> arr_a = ma.asarray(arr_a)
>>> arr_a += arr_b