如何使用默认参数值对函数进行矢量化处理?

时间:2019-02-13 11:51:32

标签: python numpy numba

使用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提供特定的签名?

0 个答案:

没有答案