Numpy矢量化排除的参数



请有人简单解释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

最新更新