所以,我有这个函数 -
def function(x):
x , y = vector
return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2)
假设我想在以下点(第一列是x值,第二列是y值)处对其进行评估 -
array([[-1.56113514, 4.51759732],
[-2.80261623, 5.068371 ],
[ 0.7792729 , 6.0169462 ],
[-1.35672858, 3.52517478],
[-1.92074891, 5.79966161],
[-2.79340321, 4.73430001],
[-2.79655868, 5.05361163],
[-2.13637747, 5.39255837],
[ 0.17341809, 3.60918261],
[-1.22712921, 4.95327158]])
我希望将该函数的第一行值传递给它进行评估,然后是第二行并进行评估,以此类推。最终结果将是在这些点上评估的值的数组(因此,由10个值组成的数组)。
例如,如果该函数是双变量正态分布-
def function2(x):
function2 = (mvnorm.pdf(x,[0,0],[[1,0],[0,1]]))
return function2
如果我将上述值传递到此函数中,则会得到 -
array([ 1.17738907e-05, 1.08383957e-04, 1.69855078e-04,
5.64757613e-06, 1.37432346e-05, 1.44032800e-04,
1.33426313e-05, 1.97822328e-06, 6.56121709e-08,
4.67076770e-05])
基本上,我正在寻找一种重写函数的方法,使其能够做到这一点。此外,我想将功能仅保留为一个变量的功能(即仅作为x的函数)。
感谢您的帮助!
np.exp((-array[:, 0] ** 2 / 200) - 0.5 * (array[:, 1] + 0.05 * (array[:, 0]**2) - 100 * 0.05)**2)
- cs95