我正在使用 Python Numpy 数组(特别是将栅格转换为二维数组),我想做的是取一个数组,该数组具有代表“无数据”的任意虚拟值 -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]])
我真的不想更改数组的形状或维度,因为之后我要将其转换回栅格,所以我需要在正确的位置使用正确的值。 执行此操作的最佳方法是什么?
最佳答案
只是做 bool 掩码:
mask = (array_a == -999)
new_array = np.copy(array_a)
new_array[mask] = array_b[mask]
关于Python NumPy : replace values in one array with corresponding values in another array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43590825/