You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用lmfit仅打印最小化算法的变量结果值?

如何提取lmfit最小化结果中的变量值并按指定格式打印?

我正在尝试打印lmfit最小化算法中的变量值,目前使用lmfit.printfuncs.report_fit(res.params),得到的输出为:

[[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

当然可以啦!其实不用纠结report_fit的输出格式,直接从res.params对象里提取变量值会更灵活,给你两种简单好用的方法:

  • 方法一:批量遍历提取(适合参数较多的情况)
    你可以直接循环遍历所有参数,取出每个参数的value属性,再用空格把它们拼接起来打印:

    print(' '.join(str(param.value) for param in res.params.values()))
    

    这样就能直接得到你想要的空格分隔格式啦。这里要注意:如果像012这种带前导零的数值,要是原始参数定义的是数值类型,它会被自动转为12,所以如果需要保留前导零,得确保参数定义时是字符串类型,或者对数值做格式化处理。

  • 方法二:指定参数顺序提取(适合参数数量少且顺序固定的情况)
    如果你想严格按照a、b、c、d的顺序打印,直接指定参数名取值就行:

    print(f"{res.params['a'].value} {res.params['b'].value} {res.params['c'].value} {res.params['d'].value}")
    

    这种方式更直观,一眼就能看出来对应哪个参数的值。

内容的提问来源于stack exchange,提问作者ch.Joshi elijah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:28:18