You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用polyfit()函数时如何对多项式系数进行取整?

如何对numpy polyfit的拟合系数取整(保留指定小数位)

嘿,我之前刚好处理过一模一样的需求!给你两个简单直接的方法,就能拿到你想要的保留三位小数的拟合结果:

方法一:对系数数组直接四舍五入

利用numpy自带的np.round()函数,直接对polyfit返回的系数数组进行处理,指定保留3位小数即可。修改后的完整代码如下:

import numpy as np
data = [1,4,5,7,8,11,14,15,16,19]
x = np.arange(0,len(data))
y = np.array(data)
z = np.polyfit(x,y,2)
# 对系数数组保留三位小数四舍五入
z_rounded = np.round(z, 3)
print(z_rounded)
print("{0}x^2 + {1}x + {2}".format(*z_rounded))

运行这段代码后,输出结果就是你想要的:

[0.004 1.905 1.318]
0.004x^2 + 1.905x + 1.318

方法二:格式化输出时指定小数位数

如果只是需要输出美观的字符串,也可以不用提前处理数组,直接在format()方法里为每个系数指定小数位数,这样更灵活。代码修改如下:

import numpy as np
data = [1,4,5,7,8,11,14,15,16,19]
x = np.arange(0,len(data))
y = np.array(data)
z = np.polyfit(x,y,2)
# 数组输出时保留三位小数
print(np.round(z, 3))
# 格式化字符串时指定每个系数保留三位小数
print("{0:.3f}x^2 + {1:.3f}x + {2:.3f}".format(*z))

这里{0:.3f}的含义是对第一个参数以浮点数格式保留三位小数,同样能得到符合要求的输出结果。

内容的提问来源于stack exchange,提问作者Tomasz Przemski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:24:53