Mat*_*att 7 python arrays numpy python-2.7
我正在使用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]])
Run Code Online (Sandbox Code Playgroud)
使用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]])
Run Code Online (Sandbox Code Playgroud)
我真的不想改变数组的形状或尺寸,因为我之后会转换回栅格,所以我需要在正确的位置找到正确的值.做这个的最好方式是什么?
Han*_*rén 13
做布尔掩码:
mask = (array_a == -999)
new_array = np.copy(array_a)
new_array[mask] = array_b[mask]
Run Code Online (Sandbox Code Playgroud)