lmfit:遵循高斯分布的参数必须是整数

问题描述

我试图拟合两个高斯峰,它们的参数是浮点数据。 但是发生了以下错误。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数组中。我猜想您的xy数据不在numpy数组中。

但这是一个猜测:如果没有完整的示例,则几乎不可能分辨出出什么问题。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...