如果您想将任意对象与
Nonepython中的对象进行完全比较,则需要使用:
object is None
像在这种情况下一样,任何对象都可能会覆盖其比较运算符以不执行您期望的操作。
至于为什么,dtype(’float64’)在dtypes的上下文中等效于None,就像dtypes等同于typestrings一样
np.dtype('i4') == 'i4'True平等不是身份。
至于为什么
dtype(None) ==dtype('float64'),numpy中的许多函数都有dtype=None关键字参数。在大多数情况下,这意味着默认dtype为
dtype(None)。一个例子是
np.zeros。但是也有例外,例如当可以从参数推断出dtype时,例如
np.arange(10)默认dtype将为整数类型的情况(
np.intp我认为)。



