求助:格式化numpy.ndarray时触发TypeError错误(需保留两位小数)
问题解决:TypeError: unsupported format string passed to numpy.ndarray.format
错误原因
model.predict()返回的是numpy数组(哪怕只预测了一个样本,结果也是形状为(1,1)的二维数组),而Python的字符串格式化{:.2f}只支持标量数值(比如int、float),直接传入数组就会触发类型错误。
修复方案
需要先从numpy数组中提取出单个标量值,再进行格式化:
方法1:通过索引提取
# 提取数组中的单个元素(假设返回的是(1,1)的二维数组) pred_scalar = new_pred[0][0] * 100 pred1 = 'Accuracy : {:.2f}%'.format(pred_scalar)
方法2:用item()方法提取(更通用)
numpy数组的item()方法可以直接将单元素数组转为Python标量,不管数组维度:
pred1 = 'Accuracy : {:.2f}%'.format(new_pred.item() * 100)
修正后完整代码示例
new_pred = model.predict(sc.transform(np.array([[float(x) for x in request.form.values()]]))) new_preds = (new_pred > 0.5).astype(int) # 格式化精度结果 pred1 = 'Accuracy : {:.2f}%'.format(new_pred.item() * 100)
内容的提问来源于stack exchange,提问作者Kristina
相关产品推荐
相关产品推荐

