如何在numpy中对具有多个参数的函数进行向量化?
我正在尝试使用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中将这些函数向量化呢?
谢谢大家的帮助!
亚历山大
1 个回答
2
抱歉,我不太明白这个问题是什么。Python中的*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) )