【发布时间】:2019-05-17 04:22:20
【问题描述】:
我正在尝试将 scipy 最小化器应用于以多个 np.arrays 作为参数的矢量化目标函数。在这个例子中,我想将obj(x,p) 相对于x 最小化,同时将p 固定为固定值。对于 p = np.array([2,3,4]),最小值应该是 2、3 和 4。
但是
import numpy as np
from numba import vectorize, float64
from scipy.optimize import minimize
xinit = np.array([1,1,1])
p = np.array([2,3,4])
@vectorize([float64(float64,float64)])
def obj(x,p):
return((x-p)**2)
minimize(obj, x0 = xinit,args = p, method='Nelder-Mead')
返回ValueError: setting an array element with a sequence.
谁能帮忙?
提前非常感谢!
【问题讨论】:
-
@vectorize的用途是什么?未装饰的obj对您有什么作用(或打算做什么)?它是否返回不同的值? -
你是对的!这里不需要装饰器..
标签: python scipy vectorization minimize