You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术咨询:为何触发ValueError: Input含NaN、infinity或超出float64范围错误

解决 ValueError: Input contains NaN, infinity or a value too large for dtype('float64') 问题

错误核心原因

你的输入数据df中存在不符合float64类型要求的异常数据:

  • 缺失值(NaN)
  • 无穷大/无穷小值(inf/-inf)
  • 超出float64数值范围的极端值

这些数据会导致模型预测时无法完成正常计算,从而触发该错误。

排查与修复步骤

1. 定位问题数据

在调用predict方法前,添加以下代码排查异常:

import numpy as np

# 统计各列的NaN数量
print(df.isna().sum())

# 统计各列的无穷值数量
print(df.isin([np.inf, -np.inf]).sum())

# 查看数值列的范围分布(可针对具体列调整)
print(df.describe())

2. 清理异常数据

  • 处理缺失值:根据业务场景选择填充或删除
    # 用列均值填充数值型NaN
    df = df.fillna(df.mean())
    # 或直接删除含NaN的行
    df = df.dropna()
    
  • 替换无穷值:先转成NaN再统一处理
    df = df.replace([np.inf, -np.inf], np.nan)
    # 复用上面的缺失值处理逻辑
    
  • 截断极端值:将超出合理范围的数值限制在区间内
    # 以1%和99%分位数作为上下限
    lower_bound = df.quantile(0.01)
    upper_bound = df.quantile(0.99)
    df = df.clip(lower_bound, upper_bound, axis=1)
    

3. 匹配模型输入格式

  • 确认df的列数、列顺序、数据类型与模型训练时的输入完全一致
  • 排除输入数据中混入的非数值型列

内容的提问来源于stack exchange,提问作者Sviryu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 11:10:41