我知道python允许对numpy数组xarr = np.array([x0,x1,...xN])
上的实值单变量函数f(x)
进行快速求值:
f(xarr) = np.array([f(x0), f(x1), ..., f(xN)])
然而,对于一个多变量函数来说,这似乎并不适用于语法。假设我有一个实值函数f(x,y)
,其中x和y是两个实数。有没有正确的语法来计算函数,比如,[(0,0), (0,1), (1,0), (1,1)]
,避免循环(在python上总是很慢?在
编辑:涉及的功能如下:
我指的五变量函数是:
def chisqr(BigOmega, inc, taustar, Q0, U0):
QU = QandU(nusdata, BigOmega, inc, taustar, Q0, U0)
Q = QU[:,0]
U = QU[:,1]
return 1./(2.*N) * (np.sum(((Q - Qs)/errQs)**2.) + np.sum(((U - Us)/errUs)**2.))
其中nusdata, Qs,
和Us
是在调用函数之前定义的数组。函数调用以下函数:
所有不是函数参数的变量都在函数外部定义。在
举个简单的例子:
^{pr2}$你所说的
f(xarr) = np.array([f(x0), f(x1), ..., f(xN)])
通常不是真的。这完全取决于f
的定义。如果f只包含算术运算,那么它是真的,但一般来说,它不是。在您的
QandU
函数应该可以按预期工作:您的
chisqr
函数可能需要一个传递给sum
的axis=
参数,具体取决于要求和的维度。在相关问题 更多 >
编程相关推荐