scipy最小化&numpy.ndarray'对象不可调用

时间:2018-02-10 16:23:35

标签: python numpy optimization scipy minimize

我正在运行的一段代码出现问题。它的目的是找到通过scipy最小化函数的向量。最小化具有约束的函数。

但是,我不断抛出以下错误

line 495, in minimize
constraints, callback=callback, **options) line 378, in _minimize_slsqp
fx = func(x), line 292, in function_wrapper
return function(*(wrapper_args + args), TypeError: 'numpy.ndarray' object is not callable

我对自己做错了有点困惑。以下代码包含要最小化的函数和约束函数。

def constraint1(w):
goal = 1
for i in range(w.shape[0]):
    goal - w[i]
return goal 
def lasso_var(w, *args):
var = w.T.dot(args[0]).dot(w)+args[1]*sum(abs(w))
return var

con1 = {'type': 'eq', 'fun': constraint1}

from scipy.optimize import minimize

sol = minimize(lasso_var(w, *(train_sig, 5)),\
            x0=w_equal,\
           constraints=con1) 

其中w是向量,train_sig是矩阵。

非常感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

您应该将函数本身传递给String json = "[{ \"car\": \"Toyota\", \"colour\": \"red\", \"qty\": \"1\",\"date_manufactured\":\"12972632260006\" }, { \"car\": \"Hyundai\", \"colour\": \"red\", \"qty\": \"2\",\"date_manufactured\":\"1360421626000\" }]"; JSONParser parser = new JSONParser(); try { /* It's a JSONArray first. */ JSONArray tmpArr = (JSONArray)parser.parse(json); for(Object obj : tmpArr){ /* Extract each JSONObject */ JSONObject tmpObj = (JSONObject) obj; System.out.println(tmpObj.get("car")); System.out.println(tmpObj.get("colour")); System.out.println(tmpObj.get("qty")); System.out.println(tmpObj.get("date_manufactured")); } } catch (ParseException e) { e.printStackTrace(); } ,而不是评估值。

您的代码不是minimal, complete and verifiable example。所以我不确切地知道你的意图。但就这样使用:

minimize