如何解决'np.float'是内置'float'已弃用别名的弃用警告
问题触发原因
这个弃用警告由依赖版本不匹配导致:
- 你安装的NumPy版本≥1.20,该版本正式废弃了
np.float、np.int等和Python内置类型同名的别名,要求使用原生float/int或np.float64等精度明确的类型 - 你当前安装的
scikit-learn版本低于1.0,内部代码仍在使用np.float这类已废弃的写法,导入时就会触发警告
具体解决方法
方案1:根本修复(推荐)
升级scikit-learn到1.0及以上版本,该版本已经全量修复了NumPy别名弃用的适配问题,升级后即可彻底消除警告:
- pip环境执行命令:
pip install -U scikit-learn - conda环境执行命令:
conda update scikit-learn
方案2:降级NumPy(适配旧版本sklearn场景)
如果项目必须使用低于1.0版本的scikit-learn,可以将NumPy降级到1.19.x版本,该版本尚未废弃np.float别名,不会触发警告:
执行命令:pip install numpy==1.19.5
方案3:临时屏蔽警告(仅适合调试场景)
如果不方便修改依赖版本,可以在导入scikit-learn前添加警告过滤代码,仅屏蔽该类弃用警告,不影响其他警告输出:
import warnings warnings.filterwarnings("ignore", category=DeprecationWarning, message=".*np.float.*is a deprecated alias") from sklearn import linear_model
注意:该方案仅隐藏警告输出,没有修复底层代码的弃用写法,不建议在生产环境使用。
内容的提问来源于stack exchange,提问作者dAPHfas9j
相关产品推荐
相关产品推荐

