添加 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_b
是 numpy.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
我有 foll.. 2 个 numpy 数组:
arr_a = numpy.zeros(shape=(3, 3))
arr_b
是第二个 numpy 数组,但它被屏蔽值 -9999.0
如果我这样做:
arr_a += arr_b
那么生成的 arr_a
不会保留掩码。如何在 return 中获取保留掩码的数组?
我假设 arr_b
是 numpy.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