Python:从数据拟合曲线

Python:从数据拟合曲线,python,curve-fitting,data-fitting,Python,Curve Fitting,Data Fitting,我是Python中曲线拟合的初学者。我想用曲线拟合来拟合数据。我有3个数据帧,其中2个包含3行,只有一行有浮点数,其他的是Nan。我的另一个数据帧有3个浮动行。就像这样: MJDMEAN MJDMEANMAX LUMINOSITYMAX 0 54960.007130 NaN NaN 1 55179.630428 55179.630428 7.264769e+40 2 51884.066424

我是Python中曲线拟合的初学者。我想用
曲线拟合
来拟合数据。我有3个数据帧,其中2个包含3行,只有一行有浮点数,其他的是Nan。我的另一个数据帧有3个浮动行。就像这样:

     MJDMEAN         MJDMEANMAX      LUMINOSITYMAX
0    54960.007130    NaN             NaN
1    55179.630428    55179.630428    7.264769e+40   
2    51884.066424    NaN             NaN
我想根据我的数据创建拟合。我的

pf = pd.read_csv('/home/foo/file.csv', sep=',', encoding ='utf-8')
##function is L(t) = Lmax(t)*(((MJDMEAN-(MJDMEANMAX- 100))/(MJDMEANMAX-100))**(-5/3))

def f(x, a, b):
    return a * (((x-(b-100))/(b-100))**(-1.67))
##creating fake data at below:
x = np.linspace((pf['MJDMEANMAX'][1]), (pf['MJDMEANMIN'][0]),10)
y = np.linspace((pf['LUMINOSITYMAX'][1]), (pf['LUMINOSITYMIN'][0]),10)
a, b = pf['LUMINOSITYMAX'][1], pf['MJDMEANMAX'][1]

popt, pcov = curve_fit(f, x, y)

curvefit = f(x,popt[0],popt[1])
plt.plot (x,y,curvefit)

但是,我有一个空白的情节。我怎么能用那种方法得到合适的呢?我感到困惑。

什么是
popt[0]
popt[1]
?popt[0]和popt[1]是f(x,a,b)中的a和b有趣的是,打印是:1.01.0打印是:popt[0]:1.0,popt[1]:1.0,a:7.26476896915e+40和b是:55179.630428您是否尝试过将值标准化到更接近1的刻度?如果所有参数的阶数相同(例如,阶数1),则拟合效果最佳,这里存在阶数1e41/5e4=2e36的差异。(您还应该注意,您的a和b值与最大x&y值相同。
popt[0]
popt[1]
?popt[0]和popt[1]是f(x,a,b)中的a和b。有趣的是,打印是:1.0 1.0打印是:popt[0]:1.0,popt[1]:1.0,a:7.26476896915e+40和b:55179.6304282您是否尝试过将值标准化为接近1的比例?如果所有参数的顺序相同(例如,顺序1),则拟合效果最佳,这里存在顺序1e41/5e4=2e36的差异。(您还应注意,您的a和b值与最大x&y值相同。)。