讓我們說,我給你以下布爾數組:numpy的logical_and:意外的行爲
b1 = np.array([ True, True, False, True ])
b2 = np.array([ True, False, False, True ])
b3 = np.array([ True, True, True, False ])
如果AND
在一起,你會想到以下結果:
b4 = np.array([ True, False, False, False ])
,對嗎?如果沒有,請解釋。如果我們同意,那麼爲什麼會發生以下情況?
>>> np.logical_and(b1, b2, b3)
array([ True, False, False, True ])
np.logical_and(np.logical_and(b1, b2), b3)
確實給出了預期的結果。
這是無關緊要時,如OP的情況下,數組已經是布爾型的,但'&'調用'bitwise_and',而不是'logical_and'。 – Jaime