我使用data
函数将多项式拟合到列表polyfit()
中的点:
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 (z)
print ("{0}x^2 + {1}x + {2}".format(*z))
输出:
[0.00378788 1.90530303 1.31818182]
0.003787878787878751x^2 + 1.9053030303030298x + 1.3181818181818175
如何使用舍入系数(例如三位小数)得到拟合点?例如,获取:
[0.004 1.905 1.318]
0.004x^2 + 1.905x + 1.318
答案 0 :(得分:1)
polyfit
方法中没有选项可用于舍入。 IIUC,您可以在应用round
后使用polyfit
。
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).round(decimals=3)
array([0.004, 1.905, 1.318])
对于正好在舍入小数值之间的值,NumPy舍入到最接近的偶数值。 因此1.5和2.5舍入到2.0 - > -0.5和0.5 round to 0.0等。结果也可能令人惊讶。引自numpy.around