所以我在我的代码中发现了一个bug,可以用下面的代码进行复制。基本上我需要检查 np.ndarray 不是0。
np.ndarray
>>> a = np.ones((3,3)) >>> np.all(a == 0) == False True
好吧,完美,所有的价值观 a 是非零的。我知道我也可以 np.all((a == 0) == False) 相反,明确要求与0进行比较,但我一开始没有这样做,这使我意识到在比较 is 到 == 在 False 案例。
a
np.all((a == 0) == False)
is
==
False
>>> np.all(a == 0) is False False
我知道 是 如果对象指向同一对象,则应进行比较。但这是否意味着我的两个值 假 实际上不要指向同一个 假 ? 我可能只是想得太多了。。。
是
假
返回类型为 numpy.bool_ 而不是 bool :
numpy.bool_
bool
In [11]: type(np.all(a == 0)) Out[11]: numpy.bool_ In [12]: type(False) Out[12]: bool
这个 is check断言两个对象指向 same object .