这只是我做的测试功能。给定一个列表,如果我可以向列表中添加一个值,那么哪个值可以最大程度地减少列表的差异?
from scipy import optimize
def var_func(x,observations):
path_var=variance([x]+observations)
return path_var
observations=[15,24,46,23,54]
var_func_bet=optimize.minimize(var_func,100,args=(observations))
我成功地使用了optimize.minimize成功实现单变量函数,但是在这里它不起作用。
尝试上面的代码给了我错误:
TypeError: can't convert type 'ndarray' to numerator/denominator
答案 0 :(得分:0)
使用numpy.var来计算方差,并确保将参数作为元组传递(请参见hpaulj的注释):
from scipy.optimize import minimize
import numpy as np
def var_func(x,observations):
return np.var([x]+observations)
observations = [15,24,46,23,54]
var_func_bet = minimize(var_func, 100, args=(observations,))