【问题标题】:lmfit: parameters to follow a Gaussian distribution have to be integerlmfit:遵循高斯分布的参数必须是整数
【发布时间】:2020-11-12 10:09:16
【问题描述】:

我试图拟合两个高斯峰,其参数是浮点数据。 但是出现了以下错误。lmfit中的高斯参数必须是整数数据吗?

文件“E:\ANACONDA\lib\site-packages\lmfit-1.0.1-py3.7.egg\lmfit\lineshapes.py”,第 31 行,高斯 * exp(-(1.0x-center)**2 / max(tiny, (2sigma**2))))
TypeError:不能将序列乘以“浮点”类型的非整数

这是代码:

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)

【问题讨论】:

  • 错误很明显。在第 31 行,您尝试将两个不同类型的变量相乘。
  • 第 31 行是 lmfit 库定义的函数,我可以做任何更改吗?而且我找不到这个错误。
  • 编辑按钮是here。并将错误消息以文本形式插入,not as an image

标签: python lmfit


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    相关资源
    最近更新 更多