我正在使用Python中的Numpy数组(具体来说是转换为2D数组的栅格图像),我想做的是将一个包含任意虚拟值-999表示“无数据”的数组替换为相同大小和形状的另一个数组中对应位置的“真实”值。我没有找到非常相似的问题,但请注意我是Python和Numpy的新手。
但我想要做的是:
array_a =
([[0.564,-999,-999],
[0.234,-999,0.898],
[-999,0.124,0.687],
[0.478,0.786,-999]])
array_b =
([[0.324,0.254,0.204],
[0.469,0.381,0.292],
[0.550,0.453,0.349],
[0.605,0.582,0.551]])
使用数组array_b的值填充数组array_a中的-999值并创建一个新数组:
new_array_a =
([[0.564,0.254,0.204],
[0.234,0.381,0.898],
[0.550,0.124,0.687],
[0.478,0.786,0.551]])
我不想改变数组的形状或尺寸,因为之后我会转换回栅格图像,所以需要正确的值在正确的位置上。你有什么建议?
我不希望改变数组的形状或尺寸,因为之后我需要将其转换回栅格图像,所以需要确保正确的值位于正确的位置。请问有什么最好的方法实现这一点?
masking
。具体内容可参考此链接:https://docs.scipy.org/doc/numpy/user/basics.indexing.html#boolean-or-mask-index-arrays。 - Divakarmask_a = ma.masked_where(array_a < -1,array_a)
但接下来怎么办呢?我只是删掉了 -999 的值,但我不知道如何将 array_b 中的值放到相同的位置? - Matt