请有人简单解释Numpy矢量化函数中排除参数的功能。
有时您不希望迭代所有对象。两个例子:
在您的函数中,CCD_ 1用于像CCD_ 2这样的单个元素。在这里矢量化没有问题:
import numpy as np
vc = np.vectorize(np.mod)
print(vc([5,11,7,4],2)) # first element will be iterated
print(vc([5,11,7,4],[2,3,4,5])) # both elements will be iterated
print(vc(5,[2,3,4,5])) # only second element will be iterated
另一方面,您有一个函数g(x,p)
,它需要p
的数组(例如:查找表或多项式的参数(。因此,p
必须保留一个数组,否则函数会给出错误或错误数据。这是通过排除p
来完成的。请注意,通过使用exclude,现在必须命名所有参数。示例:
import numpy as np
def g(x,p):
return p[0]+x*p[1]+x*x*p[2]
print(g(5,[0,0,1]))
vg = np.vectorize(g, excluded=['p'])
print(vg(x=[0,1,2,3,4,5],p=[0,0,1])) # p will not be iterated