使用 lmfit 打印变量值

printing variable values using lmfit

我正在尝试使用 lmfit.printfuncs.report_fit(res.params) 从 lmfit 最小化 algorithm.am 打印变量值,我正在获取

[[Variables]]
    a:   123 (init= 123)
    b:   456 (init= 456)
    c:   789 (init= 789)
    d:   012 (init= 012)
[[Correlations]] (unreported correlations are <  0.100)

我可以只打印结果值吗

123
456
789
012

我可以使用 print(result.values) 获取变量值,如果有人能得到准确的输出,请分享。

result.params 是 Parameter 对象的有序字典,每个对象都有存储在 value 属性和其他几个属性中的最佳值。基本上,fit_report 会做类似的事情:

for param in result.params.values():
    print("%s:  %f +/- %f (init = %f)" % (param.name, param.value, param.stderr, param.init_value)

您可以随意修改它。

可以使用

访问特定值
result.params.get('variable_name').value

例如:

result.params.get('fwhm').value