我有2个大型数组,但元素数量完全相同。
Array1=[[1,2,3][1,1,2]]
Array2=[[0,2,0][3,1,3]]
如果Array1中的Element =“1”,则将“1”替换为与Array2位于同一位置的任何内容
Output=[[0,2,3][3,1,2]]
应该很容易,但是周五晚些时候,我的脑子就乱了。
答案 0 :(得分:3)
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]])
正如乔根卡所指出的,上述解决方案可以简化为:
b = Array1 == 1
Array1[b] = Array2[b]
答案 1 :(得分:2)
这个基于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)