因此,我在代码中找到了一个错误,可以复制以下内容。基本上,我需要检查np.ndarray
中的所有元素是否都不为0。
>>> a = np.ones((3,3))
>>> np.all(a == 0) == False
True
好的,a
中的所有值都不为零。我知道我也可以做np.all((a == 0) == False)
来明确地要求将其与0进行比较,但是起初我没有这样做,这使我意识到将is
与==
进行比较时存在差异在False
情况下。
>>> np.all(a == 0) is False
False
我知道is
应该比较对象是否指向同一个对象。但这是否意味着我返回了False
的两个值实际上并不指向相同的False
?我可能只是对此太想了...
答案 0 :(得分:5)
返回类型为numpy.bool_
而不是bool
:
In [11]: type(np.all(a == 0))
Out[11]: numpy.bool_
In [12]: type(False)
Out[12]: bool
is
检查断言两个对象指向same object。