观察
np.nan < 0
False
np.array([np.nan]) < 0
array([False], dtype=bool)
然而,
np.array([-1, np.nan]) < 0
//anaconda/envs/3.5/lib/python3.5/site-packages/ipykernel/__main__.py:1: RuntimeWarning:如果\_name\_ ==‘\_\_name\_\_’_‘中遇到的无效值
array([ True, False], dtype=bool)
这个错误是什么意思?
发布于 2016-11-06 13:09:04
这只是一个警告,不是一个例外。Numpy试图提供帮助,并报告您的数组中有一个nan
。忽略它是安全的。如果警告本身困扰您(或您的用户),您可以禁用它:
with np.errstate(invalid='ignore'):
np.less([np.nan, 0], 1)
但是,这实际上是不推荐的,因为它可以掩盖不太明显的问题,如果您需要在冗长的计算中找到nan
的来源,那么调试就会变得更加困难。
注意nan
的语义:nan > 0
、nan < 0
和nan < nan
,nan == nan
都是False
。
还要注意的是,在numpy (例如熊猫)中,nan
实际上意味着无效,不可用。
https://stackoverflow.com/questions/40452765
复制