找到numpy图像的重叠

时间:2014-05-14 12:06:40

标签: python numpy

如果我有两个numpy数组:

a = np.array[[0,1,1],
             [0,1,0],
             [0,0,0]] 
b = np.array[[0,1,1],
             [0,0,1],
             [0,0,0]]

我怎样才能找到它们之间的“重叠”,因此输出为:

c =         [[0,1,1],
             [0,0,0],
             [0,0,0]]  

我有这个,但有没有一种方法可以更快,因为我的阵列很大?

c = a + b - 1
c[c<0] = 0

1 个答案:

答案 0 :(得分:4)

如果在示例中,数组中的值为0或1,则可以使用按位“和”运算符&

In [3]: a
Out[3]: 
array([[0, 1, 1],
       [0, 1, 0],
       [0, 0, 0]])

In [4]: b
Out[4]: 
array([[0, 1, 1],
       [0, 0, 1],
       [0, 0, 0]])

In [5]: c = a & b

In [6]: c
Out[6]: 
array([[0, 1, 1],
       [0, 0, 0],
       [0, 0, 0]])