我有2个numpy数组:
arr_a = numpy.zeros(shape=(3, 3))
arr_b
是第二个numpy数组,但掩码值为-9999.0
如果我这样做:
arr_a += arr_b
然后生成的arr_a
不保留掩码。如何获得保留掩码的数组?
答案 0 :(得分:3)
我假设arr_b
是numpy.ma.array
的一个实例。在这种情况下,numpy的语义意味着arr_a += arr_b
正在添加数组就地。因此,它当然不能将其类型从numpy.array
更改为numpy.ma.array
。
这与创建 new 输出数组的arr_a + arr_b
形成鲜明对比,因此可以随意分配它。
如果您希望在原地添加蒙版数组,则必须将目标(arr_a
)转换为蒙版数组。
>>> arr_a = ma.asarray(arr_a)
>>> arr_a += arr_b