Python “中的值无效”;减去;比较数组中的np.nan时

Python “中的值无效”;减去;比较数组中的np.nan时,python,pandas,numpy,Python,Pandas,Numpy,观察 这个错误是什么意思?这只是一个警告,不是例外。Numpy试图提供帮助,并报告数组中有一个nan。忽略它是安全的。如果警告本身困扰您(或您的用户),您可以抑制它: array([ True, False], dtype=bool) 但是,实际上不建议这样做,因为如果需要在冗长的计算中找到nan的来源,它会掩盖不太明显的问题,并使调试变得更加困难 注意nan的语义:nan>0,nan

观察



这个错误是什么意思?

这只是一个警告,不是例外。Numpy试图提供帮助,并报告数组中有一个
nan
。忽略它是安全的。如果警告本身困扰您(或您的用户),您可以抑制它:

array([ True, False], dtype=bool)
但是,实际上不建议这样做,因为如果需要在冗长的计算中找到
nan
的来源,它会掩盖不太明显的问题,并使调试变得更加困难

注意
nan
的语义:
nan>0
nan<0
nan
nan==nan
都是
False


还请注意,在numpy中(与例如熊猫不同)
nan
实际上意味着无效不可用。

再次尝试运行这些测试。`如果name='main':`看起来更像是语法错误,而不是真正的numpy问题。确保错误是可复制的。@hpaulj我将在回到计算机时重新发布。我测试了很多次。一定是某个东西的一个版本。我将包含该信息或打开一个问题。@hpaulj这只是一个格式问题,在复制粘贴到SO时被弄乱了<代码>如果_uname _;=“_umain __;”
部件来自ipython,则报告警告(
np.less
在单独一行)。nan=不是数字
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: invalid value encountered in less
  if \__name\__ == '\__main\__':
array([ True, False], dtype=bool)
with np.errstate(invalid='ignore'):
    np.less([np.nan, 0], 1)