首页 > 解决方案 > 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: can't multiply sequence by non-int of type '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)

标签: pythonlmfit

解决方案


lmfit 中的所有参数值都是浮点值('float')。数据也应该在'float'类型的numpy数组中。我猜你的xory数据不在 numpy 数组中。

但这是一种猜测:没有完整的示例,几乎不可能说出可能出了什么问题。


推荐阅读