从 Python 函数获取输出变量

Obtaining output variables from Python function

我正在使用一个函数 scipy.optimize.fmin_bfgs,它有几个输出变量。我关心其中的两个,xopt 和 fopt。如何存储这些变量?以下对我不起作用:

xopt, fopt = fmin_bfgs(f, 0, fprime = fprime)

然而,这给了我 fopt:

fopt = fmin_bfgs(f, 0, fprime = fprime)

我也需要xopt,但是它说我"need 1 more value to unpack."

需要将full_output设置为true,之后foptfunc_callsgrad_callswarnflag也包含在内;您可以对返回的序列进行切片:

xopt, fopt = fmin_bfgs(f, 0, fprime = fprime, full_output=True)[:2]

参见 scipy.optimize.fmin_bfgs documentation:

full_output : bool, optional
If True,return fopt, func_calls, grad_calls, and warnflag in addition to xopt.

当然,此函数的文档使这一点远非显而易见,我首先必须查看 linked source code。从表面上看,boptgopt在设置full_output时也包含在内,但文档未能正确解释这一点。