替换Numpy数组中的值,使用第二个Numpy数组中的Value,Given Criteria

时间:2013-07-27 00:28:30

标签: python numpy

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

应该很容易,但是周五晚些时候,我的脑子就乱了。

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)