问题描述
我试图拟合两个高斯峰,它们的参数是浮点数据。 但是发生了以下错误。lmfit中的高斯参数必须是整数数据吗?
文件“ E:\ ANACONDA \ lib \ site-packages \ lmfit-1.0.1-py3.7.egg \ lmfit \ lineshapes.py”,第31行,以高斯表示 * exp(-(1.0 x-center)** 2 / max(tiny,(2 sigma ** 2))))
TypeError:无法将序列乘以'float'类型的非整数
这是代码:
exp_mod = ExponentialModel(prefix='exp_')
pars = exp_mod.guess(y,x=x)
gauss1 = GaussianModel(prefix='g1_')
pars.update(gauss1.make_params())
pars['g1_center'].set(value=param_1[1],min=param_1[1]-0.2,max=param_1[1]+0.2)
pars['g1_sigma'].set(value=param_1[2],min=0.1)
pars['g1_amplitude'].set(value=param_1[0],min=0)
解决方法
lmfit中的所有参数值都是浮点值(“ float”)。数据也应位于“ float”类型的numpy数组中。我猜想您的x
或y
数据不在numpy数组中。
但这是一个猜测:如果没有完整的示例,则几乎不可能分辨出出什么问题。