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实际上表示无效无效.

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...