我正在尝试学习Python和Numba,我无法弄清楚为什么下面的代码不能在IPython / Jupyter中计算:
from numba import *
sample_array = np.arange(10000.0)
@jit('float64(float64, float64)')
def sum(x, y):
return x + y
sum(sample_array, sample_array)
TypeError Traceback(最近一次调用最后一次)in()----> 1 sum(sample_array,sample_array)C:\ Users *** \ AppData \ Local \ Continuum \ Anaconda \ lib \ site-packages \ numba \ dispatcher . _explain_matching_error中的pyc(self,* args,** kws)201 msg =(“参数类型没有匹配的定义%s”202%',' . join(map(str,args))) - > 203 raise TypeError(msg)204 205 def repr(self):TypeError:参数类型数组(float64,1d,C),数组(float64,1d,C)没有匹配的定义
1 回答
您正在传入数组,但您的jit签名需要标量浮点数 . 请尝试以下方法:
我的建议是看看你是否可以不指定类型,只使用裸
@jit
装饰器,它将在运行时进行类型推断,你可以更灵活地处理输入 . 例如:我的经验是,添加类型很少会带来任何性能上的好处 .