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

sklearn中SimpleImputer报TypeError: fit()缺少X参数,求解决方案

解决SimpleImputer的TypeError问题

嘿,这个问题我之前也踩过坑!你出错的核心原因是搞混了类方法和实例方法的调用方式。

错误原因分析

SimpleImputer是sklearn中的一个类,你已经正确创建了它的实例imputer,但后面却直接用类名SimpleImputer去调用fit()和transform()方法——这两个是实例方法,必须通过你创建好的imputer实例来调用,而不是类本身。类直接调用的话,Python会认为你缺少了实例这个必填参数(也就是self),所以才会报fit() missing 1 required positional argument: 'X'的错误。

修正后的代码

把代码里的SimpleImputer.fit和SimpleImputer.transform改成用实例imputer调用:

from sklearn.impute import SimpleImputer
# 创建SimpleImputer实例
imputer = SimpleImputer(missing_values="NaN", strategy="mean")
# 用实例调用fit方法,拟合数据
imputer.fit(X[:,1:3])
# 用同一个实例调用transform方法,填充缺失值
X[:,1:3] = imputer.transform(X[:,1:3])

更简洁的写法

你还可以用fit_transform()一步完成拟合和转换,代码更紧凑:

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values="NaN", strategy="mean")
X[:,1:3] = imputer.fit_transform(X[:,1:3])

这样就能正常运行啦,本质就是记住:sklearn的估计器类创建实例后,所有的拟合、转换操作都要基于这个实例来执行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:41:42