如何基于具有相同尺寸和形状的蒙版数组更新numpy数组

时间:2018-12-19 18:43:15

标签: python arrays numpy

我有两个具有相同尺寸和形状的数组。该nv_arr数组具有空值(-9999)。我创建了一个掩码数组nv_mask,以屏蔽除-9999以外的所有值,从而以某种方式通过位置“更新”此out数组,而无需创建新数组。

换句话说,数字0、3、6和2必须替换为-9999。我该怎么办?

    >>> nv_arr
     ([[-9999,   123,   -9999],
       [-9999,   444,   444],
       [-9999,   323,   323]])

>>> nv_mask
[[-9999 -- -9999]
 [-9999 -- --]
 [-9999 -- --]]

 >>> out
      ([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

1 个答案:

答案 0 :(得分:1)

假设nv_maskMaskedArray,则可以调用.mask属性来设置值:

>>> out[~nv_mask.mask] = -9999
>>> out 
array([[-9999,     1, -9999],
       [-9999,     4,     5],
       [-9999,     7,     8]])