Scipy optimize.fmin错误的返回值

时间:2017-05-03 08:21:59

标签: python scipy python-3.4

我目前正在使用scipy.optimize.fmin()功能,我遇到了问题。当我查看文档时说:

返回:

    xopt : ndarray
        Parameter that minimizes function.

    fopt : float
        Value of function at minimum: fopt = func(xopt).

    iter : int
        Number of iterations performed.

    funcalls : int
        Number of function calls made.

    warnflag : int
        1 : Maximum number of function evaluations made. 2 : Maximum number of iterations reached.

    allvecs : list
        Solution at each iteration.

但是当我尝试这个时:

res, min = opt.fmin(optim, self._params, (param_optim, self._paramsIni, Qmes, critere_efficacite, self, codeBV, interval), maxiter=5)

我收到此错误:

ValueError: too many values to unpack (expected 2)

任何人都知道为什么?我的意思是文件错误(我猜不是)或我做错了什么?我正在使用scipy 0.19和Python34

提前致谢。

1 个答案:

答案 0 :(得分:2)

稍微更精确一点:该函数返回6个值的元组(

  

full_output:bool,可选       如果需要fopt和warnflag输出,则设置为True。

)或一个(如果它保留在False这是默认值)。如果您只想获得完整输出的第二个值,我建议您按照注释中的建议设置full_output=True和模式匹配。或者,您可以将结果存储在一个元组res = opt.fmin(<your arguments>)中,然后访问r=res[0] min=res[1]