Python NumPy : replace values in one array with corresponding values in another array

标签 python arrays python-2.7 numpy

我正在使用 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/

相关文章:

javascript - 对数字进行排序,使偶数在前

python - 如果没有值则最大值 - python

python - 使用 Anaconda 在 OS X 上安装 pygraphviz 时出错

python - 在 Python-Fu 中,将字符串包装在 N_() 中有何作用?

python - 在 Python 中创建自定义枚举

python - 如何找到总和最多为一个常数的所有组合?

JavaScript嵌套对象数组,如何循环遍历数组的 'KEY'?

javascript - 在数组上使用过滤器和匹配方法来查找精确匹配

python - 如何将 BeautifulSoup.ResultSet 转换为字符串

python - Qt:Python tcp 客户端通过套接字发送数据。 Qt如何读取这些字节?