2016-11-07 86 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