我有两个具有相同尺寸和形状的数组。此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]])
最佳答案
假设nv_mask
是MaskedArray
,则可以调用.mask
属性来设置值:
>>> out[~nv_mask.mask] = -9999
>>> out
array([[-9999, 1, -9999],
[-9999, 4, 5],
[-9999, 7, 8]])
关于python - 如何基于具有相同尺寸和形状的蒙版数组更新numpy数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53857404/