hdbscan调用fit_predict报错:TypeError: 'numpy.float64'无法被解释为整数
问题分析与解决方案
核心原因:包版本不兼容
这个错误大概率是hdbscan与依赖的numpy/scipy版本不匹配导致的,和Linux或Google Colab系统本身关系不大——两个不同环境出现相同问题,说明问题出在包依赖层面,而非系统差异。
排查与修复步骤
- 先检查当前环境的包版本:
在代码开头加入以下代码查看版本信息:import numpy import hdbscan print("numpy版本:", numpy.__version__) print("hdbscan版本:", hdbscan.__version__) - 匹配兼容版本:
- 如果numpy版本过高(比如≥1.24.x),旧版hdbscan可能不支持numpy的新类型处理逻辑,此时降级numpy到1.23.x版本:
pip install numpy==1.23.5 - 或者直接升级hdbscan到最新稳定版,确保适配当前numpy版本:
pip install --upgrade hdbscan
- 如果numpy版本过高(比如≥1.24.x),旧版hdbscan可能不支持numpy的新类型处理逻辑,此时降级numpy到1.23.x版本:
- 验证修复:
重新运行官方文档代码,确认fit_predict的输入数据是标准numpy数组(官方代码通常不会有格式问题,所以版本兼容是核心修复点)。
额外建议
Colab默认包版本会自动更新,容易引发依赖冲突。建议在运行核心代码前,先安装经过验证的稳定兼容版本组合:
pip install numpy==1.23.5 hdbscan==0.8.33 umap-learn==0.5.3
内容的提问来源于stack exchange,提问作者Sotiris
相关产品推荐
相关产品推荐

