我正在尝试使用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中对这些函数进行矢量化?
感谢您的帮助! 亚历山大
答案 0 :(得分:2)
抱歉,我不确定问题是什么。 Python *args
收集任意数量的args,
功能可以随意打开;看到
docs.python.org/tutorial/...
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) )