2016-11-07 128 views
0

我正在嘗試使用以下代碼創建組合布爾矩陣函數。組合布爾矩陣

def AndCombine(array1, array2): 
    if array1.shape != array2.shape: 
     return 'Matrix size not equal.' 
    else: 
     Product= np.where(array1==1, True, np.where(array2==1, True, False)) 
    print (Product) 
    return Product 

我測試相結合的矩陣是:

arr1= np.array([[True, False], [False, True]]) 
arr2= np.array([[False, True],[True, True]]) 

當我跑我的AndCombine(arr1, arr2)功能,我希望看到的[[False, False],[False, True]]產品,但是我收到的輸出爲[[True, True],[True, True]]和我我不確定這是爲什麼發生。

任何幫助或建議,將不勝感激!

回答

2

爲什麼不只是使用&運算符?

>>> arr1 & arr2 
array([[False, False], 
     [False, True]], dtype=bool) 
+0

'&'按位比較。 'arr1&arr2'相當於'np.bitwise_and(arr1,arr2)',雖然前者稍快。 – Jakub