【Python】np.polyfit点拟合曲线

编程入门 行业动态 更新时间:2024-10-25 06:24:33

【Python】np.polyfit点拟合<a href=https://www.elefans.com/category/jswz/34/1769778.html style=曲线"/>

【Python】np.polyfit点拟合曲线

最近在学习python数据分析,做个笔记记录一下代码,今天是用numpy拟合了一组数据。

先贴拟合的效果出来,蓝色的点是用np生成的20个点,红线是拟合出来的曲线:

下面是代码:

import matplotlib.pyplot as plt
import numpy as npx = np.linspace(300,400,20)
y = x + np.random.random_integers(5,20,20) #随机取5到10中间20个数
poly = np.polyfit(x,y,deg=1)
z = np.polyval(poly, x)
plt.plot(x, y, 'o')
plt.plot(x, z)plt.show()

代码可以分成三部分:

第一部分是生成数据,x是在300到400中间平分的取了20个点(包含300,400)生成一个数组;至于y是在x的每个元素上加了一个5-20之间的随机数的数组。相当于获得了20个点的坐标。第二部分是用polyfit函数,对x,y进行拟合(下面会介绍这个函数);拟合出的曲线对应的z值用polyval获得。第三部分就是绘图了。
下面详细介绍以下polyfit函数的参数以及返回值:这个函数前两个参数是x,y 也就是我们生成的两个20维的数组,代表要拟合的20个点。第三个参数1是你要拟合的多项式的最高阶阶数。比如你选择这个参数为1,即你想拟合一个有两项的多项式(最高阶为1),y=kx**1+bx**0,也就是一条直线,如果你选择参数为2(最高阶为2),就是拟合右边有三项的多项式:y=Lx**2+kx**1+bx**0,也就是一条抛物线。具体看下模块中的函数说明。

def polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False):"""Least squares polynomial fit.Fit a polynomial ``p(x) = p[0] * x**deg + ... + p[deg]`` of degree `deg`to points `(x, y)`. Returns a vector of coefficients `p` that minimisesthe squared error.

至于polyfit的返回值,可以打印一下上面代码中的poly看一下,是[k,b](如果你制定deg参数为2的话即返回抛物线的参数[L,k,b])。

numpy.polyfit — NumPy v1.21 Manual

更多推荐

【Python】np.polyfit点拟合曲线

本文发布于:2023-06-13 09:39:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/679082.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:曲线   Python   np   polyfit

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!