3

我有 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]]

应该很容易,但是星期五这么晚让我的大脑混乱了。

4

2 回答 2

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]])

正如 jorgeca 指出的,上述解决方案可以简化为:

b = Array1 == 1
Array1[b] = Array2[b]
于 2013-07-27T00:38:19.477 回答
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)
于 2013-07-27T00:59:51.643 回答