如何使用多个参数在numpy中向量化一个函数?

时间:2010-07-30 23:14:53

标签: python numpy scipy

我正在尝试使用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 个答案:

答案 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) )