我有 2 个具有完全相同数量的元素的大型数组。
Array1=[[1,2,3][1,1,2]]
Array2=[[0,2,0][3,1,3]]
如果 Array1 中的元素 =“1”,则将“1”替换为与 Array2 相同的位置
Output=[[0,2,3][3,1,2]]
应该很容易,但是星期五这么晚让我的大脑混乱了。
import numpy as np
Array1 = np.array([[1,2,3], [1,1,2]])
Array2 = np.array([[0,2,0], [3,1,3]])
b = np.where(Array1 == 1)
Array1[b] = Array2[b]
结果:
>>> Array1
array([[0, 2, 3],
[3, 1, 2]])
正如 jorgeca 指出的,上述解决方案可以简化为:
b = Array1 == 1
Array1[b] = Array2[b]
这是基于 Akaval 的解决方案,但在一条线上。它利用了其他功能np.where()
:
import numpy as np
Array1 = np.array([[1,2,3], [1,1,2]])
Array2 = np.array([[0,2,0], [3,1,3]])
Output = np.where(Array1 == 1, Array2, Array1)