我想要 2 个小数点结果用于 Python 上的预测

Posted

技术标签:

【中文标题】我想要 2 个小数点结果用于 Python 上的预测【英文标题】:I want to 2 decimal points result for predicts on Python 【发布时间】:2021-12-25 18:12:36 【问题描述】:

我的输出有太多小数点。但我想要 2 点浮动结果。你能帮帮我吗?

例如:42.44468745 -> 42.44

y_pred=ml.predict(x_test)
print(y_pred)

输出:

[42.44468745 18.38280575  7.75539511 19.05326276 11.87002186 26.89180941
 18.97589775 22.01291508  9.08079557  6.72623692 21.81657224 22.51415263
 24.46456776 13.75392096 21.57583275 25.73401908 30.95880457 11.38970094
  7.28188274 21.98202474 17.24708345 38.7390475  12.68345506 11.2247757
  5.32814356 10.41623796  7.30681434]

【问题讨论】:

np.round(y_pred, 2) 工作吗? 您想要打印到小数点后两位,还是将y_pred 的精度更改为两位小数? @fam-woodpecker 不幸的是,没有。 【参考方案1】:

由于您没有发布所有代码,我只能给您一个笼统的答案。

有几种方法可以得到两位小数。

例如:

num = 1.223362719

print(':.2f'.format(num))

print('%.2f' % num)

print(round(num, 2))

print(f"num:.2f")

您将获得1.22 作为其中任何一个的结果。

------------------更新------------------

感谢您的评论,我已经更新以处理您的问题。

当您的数据 OP 使用 ndarray 时,使用 numpy 可以帮助您。

可以使用data= np.around(a, n)#a为需要十进制处理的数据,n为保留数。

例子:

    import numpy as np
    data= np.around(1.223362719, 2) 

您还将获得1.22 作为结果。

【讨论】:

我认为你最好也添加一个 numpy 解决方案,因为 OP 使用的数据是 ndarray 也可以添加print(f"num:.2f") @LTX 感谢您的帮助。我使用了您更新的代码并成功了 @rickhg12hs 我试过打印但没用 @Cataldirect Format strings f" 应该适用于最新版本的 Python。【参考方案2】:

使用round(num, round_decimal) 例如:

num = 42.44468745

print(round(num, 2))

输出:

42.44

【讨论】:

以上是关于我想要 2 个小数点结果用于 Python 上的预测的主要内容,如果未能解决你的问题,请参考以下文章

用于更快地查找 Python 字典的预散列字符串键?

订单导出的预发和线上的自动化对比工具

python使用matplotlib对比多个模型在测试集上的效果并可视化设置模型性能可视化结果柱状图(bar plot)标签的小数点位数(例如,强制柱状图标签0.7显示为两位小数0.70)

使用 pytest 标记的预测试任务?

C语言:怎么样使结果输出时保留一位小数;保留两位小数?

如何在Python中保留小数?