numpy
의 array
을 사용할 때 놀라운 상황이 발생했습니다. 다음 코드Numpy Bool 배열에 부울 연산자의 합계 (버그?)
(True==True)+(True==True)
은 2
을 반환합니다. 동안
import numpy
Array=numpy.zeros((2,2),dtype=bool)
(Array[0][0]==Array[0][0])+(Array[1][0]==Array[1][0])
는 True
을 반환합니다. 합이 교환 법칙이 성립하지 만드는
(Array[0][0]==Array[0][0])-1+(Array[1][0]==Array[1][0])
반환 1
동안,
(Array[0][0]==Array[0][0])+(Array[1][0]==Array[1][0])-1
이 0
를 반환 :이 리드!
이것은 의도 된 것입니까? 그렇다면 왜?
numpys bool이 vanillas bool과 다른 동작을하도록 설계된 이유가 있는지 알고 있습니까? 또는 바닐라 bool에서 의도 된 bool의 합이 아닌가? 어쩌면 아무도 그것을 생각하지 못했습니다 ^^ – Tilman
나는 그렇지 않습니다. 관심이 있으시면 [여기] (https://www.mail-archive.com/numpy-discussion%40scipy.org/msg43366.html)를 삭제하는 방법에 대한 토론이 있습니다. – jonrsharpe
답장을 보내 주셔서 감사 드리며, 이로 인해 더 깨끗하고 예리한 Python 코드를 작성하게되었습니다. 내가 알아 차리지 못했던 (그리고 결코 눈치 채지 못했을 것 인) 다른 모든 이슈들을보고 나서 더욱 그렇다. – Tilman