从Python函数中获取输出变量

时间:2015-09-05 21:00:01

标签: python scipy

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

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

然而,这给了我fopt

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

我也需要xopt,但它说我“还需要1个值来解压缩。”

1 个答案:

答案 0 :(得分:1)

您需要将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,可选
  如果为True,除了xopt之外还返回fopt,func_calls,grad_calls和warnflag。

当然,这个函数的文档使这很明显,我首先要看linked source code。根据它的外观,boptgopt也会在设置full_output时包含在内,但文档无法正确解释这一点。