在使用numpy
的array
时,我遇到了一个令人惊讶的情况。以下是代码:
(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])+(Array[1][0]==Array[1][0])-1
返回 0
,同时
(Array[0][0]==Array[0][0])-1+(Array[1][0]==Array[1][0])
返回1
,使得和不可交换!
这是有意为之吗?如果是,为什么呢?