2014-05-14 20 views
3

如果我有兩個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 
+0

哦謝謝!對不起... – kezzos

+0

希望答案在那裏幫助 – Mathias711

回答

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

謝謝。事實證明,c = a == b實際上快得多! – kezzos