Python逻辑运算 VS Numpy数组逻辑运算

纯python

#异或
bool1^bool2
#或
bool1 | bool2
bool1 or bool2
#与
bool1 & bool2
bool1 and bool2
#非
not bool1

Numpy

异或 操作

cond1=np.array([True,False,True,True,False])
cond2=np.array([False,True,True,True,False])

cond1^cond2
#out:array([ True,  True, False, False, False], dtype=bool)

np.bitwise_xor(cond1,cond2)
#out:array([ True,  True, False, False, False], dtype=bool)

np.logical_not(cond1)
#out:array([False,  True, False, False,  True], dtype=bool)

~cond1
#out:array([False,  True, False, False,  True], dtype=bool)

与:&,或:|

布尔当作0、1处理

#int计算,Bool型计算过程可以看做是0或1
-True
#out:-1

result=1*(cond1^cond2)+2*(cond1 & cond2) +3*~(cond1|cond2)
#out:array([1, 1, 2, 2, 3])

你可能感兴趣的:(Notes,python)