Python用numpy计算TN时报int与list不支持减法,如何转换actual变量?
解决方案
你遇到的报错核心原因是actual为Python原生列表,不支持直接与整数执行减法运算,而无逗号格式输出的predict是numpy的ndarray数组类型,天然支持向量批量运算。
你只需将actual转换为numpy数组即可正常运算,修改后的代码如下:
# 若未导入numpy需先执行导入 import numpy as np # 转换原生列表为numpy数组 actual_np = np.array(actual) # 若需完全匹配predict的类型,可指定dtype参数: # actual_np = np.array(actual, dtype=predict.dtype) TN = np.sum((1 - predict) * (1 - actual_np))
转换后numpy会自动将布尔值映射为整数计算(True对应1、False对应0),和你原有计算真负样本数的逻辑完全一致,不会产生结果偏差。
内容的提问来源于stack exchange,提问作者Fabio
相关产品推荐
相关产品推荐

