微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-比较数组中的np.nan时,“ less”中的值无效

观察

np.nan < 0

False
np.array([np.nan]) < 0

array([False], dtype=bool)

然而

np.array([-1, np.nan]) < 0

06003

array([ True, False], dtype=bool)

错误是什么意思?

解决方法:

这仅是警告,并非例外. Numpy会尝试提供帮助,并报告您阵列中有一个Nan.忽略它是安全的.如果警告本身困扰您(或您的用户),则可以取消警告:

with np.errstate(invalid='ignore'):
    np.less([np.nan, 0], 1)

但是,实际上不建议这样做,因为它可能掩盖不那么明显的问题,并且如果您需要在冗长的计算中找到难点的出处,则会使调试更加困难.

注意nan的语义:nan> 0,南< 0和nan< nan,nan == nan都是False. 另请注意,在numpy中(与pandas不同),nan实际上表示无效无效.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐