使用numba
,编译一个带有默认值的额外参数的函数通常是没有问题的(并且此问题已通过here得到解决),例如:
@numba.jit
def f(a, b=1):
return a + b
我正在尝试使用jit
而不是 vectorize
来实现相同的功能 not 。也就是说,相关问题中提出的Omitted
关键字在这里不再起作用:
@numba.vectorize
def f(a, b=1):
return a + b
a = numpy.array([1, 2, 3])
f(a) # Raises ValueError: invalid number of arguments
f(a, 2) # Works OK
@numba.vectorize(['float64(float64, float64)', 'float64(float64, Omitted(float64))'])
def f(a, b=1):
return a + b # Raises NotImplementedError
有没有解决此问题的好方法?例如通过为vectorize
提供特定的签名?