我正在尝试使用scipy对给定函数进行拟合。scipy.optimize.leastsq需要一个矢量化函数作为输入参数之一。 这一切都很好,但是现在我有了一个更复杂的函数,它不是由scipy/numpy自动向量化的。
def f1(a, parameters): b, c = parameters result = scipy.integrate.quad(integrand, lower, upper, (a, b, c)) return result
或者给出一个封闭的例子numpy.vectorize也不适用于
def f2(a, parameters): b, c = parameters return a+b+c
是否有可能在scipy/numpy中对这些函数进行矢量化?
谢谢你的帮助! 亚力山大
对不起,我不知道是什么问题。蟒蛇 *args 收集任意数量的参数, 函数可以随意解包;参见 docs.python.org/tutorial/...
*args
import numpy as np from scipy.integrate import quad def f2( a, *args ): print "args:", args return a + np.sum( args, axis=0 ) x = np.ones(3) print f2( x, x*2, x*3 ) def quadf( *args ): print "quadf args:", args return 1 quad( quadf, 0, 1, (2,3) )