在Spyder(Python 3.9)中使用sk-learn与NumPy实现二值化的预期输出问题
二值化代码未达预期输出排查步骤
核对核心逻辑参数
- 检查
Binarizer阈值:sklearn的preprocessing.Binarizer默认阈值是0.0,你要确保设置的阈值和原始数据匹配——预期里的1对应原始值≥阈值,0对应<阈值,先确认阈值是否符合你的数据逻辑。 - 校验原始输入数组:确认传入二值化器的NumPy数组数值,是否和你预期输出对应的原始数据一致,比如某行原始值是否满足二值化后出1或0的条件。
- 检查
检查代码执行细节
- 确认数据转换方法:别只调用
fit方法,必须用fit_transform(首次处理)或transform(已拟合模型)才能得到二值化后的数组。 - 规范输出打印:直接打印数组可能格式混乱,试试用
print("Binarized data:\n", binarized_data),或者用np.set_printoptions调整打印格式,避免因显示问题误判结果。
- 确认数据转换方法:别只调用
环境版本排查
- 确认库版本兼容性:Python3.9搭配的scikit-learn和NumPy版本是否兼容?输入
pip show scikit-learn numpy查看版本,过旧版本可能存在bug,建议升级到适配3.9的稳定版本。
- 确认库版本兼容性:Python3.9搭配的scikit-learn和NumPy版本是否兼容?输入
预期输出参考:
Binarized data: [[1. 0. 1.] [0. 1. 0.] [1. 0. 0.] [1. 0. 0.]]
内容的提问来源于stack exchange,提问作者tetatet error
相关产品推荐
相关产品推荐

