Python 如何使用Scipy最小化函数的一个参数?

Python 如何使用Scipy最小化函数的一个参数?,python,numpy,scipy,minimize,Python,Numpy,Scipy,Minimize,我有以下功能 def fun(X, alpha, y): #some stuff return J, gradient 我试着用这个最小化alpha,但什么也没发生 optimized_alpha = sp.optimize.minimize(lambda t: fun(X, t, y), alpha, method="Newton-CG", jac=True) 您可以使用functools.partial将函数转换为只有一个参数的部分函数。为了使其与scipy.optimi

我有以下功能

def fun(X, alpha, y):
    #some stuff
    return J, gradient
我试着用这个最小化alpha,但什么也没发生

optimized_alpha = sp.optimize.minimize(lambda t: fun(X, t, y), alpha, method="Newton-CG", jac=True)

您可以使用
functools.partial
将函数转换为只有一个参数的部分函数。为了使其与
scipy.optimize.minimize
一起工作,您需要将变量参数保持在最后一个位置:

def fun(X, y, alpha):
    #some stuff
    return J, gradient
然后:

from functools import partial

optfunc = partial(func, X, y)
optimized_alpha = sp.optimize.minimize(optfunc, alpha, method="Newton-CG", jac=True)