“ test_numba”下面的函数给出错误:“无法键入空列表”,但是在没有numba编译的情况下可以使用。
def test(list_test,count):
test_list =[]
for all in list_test:
test_list.append(all)
if count ==1:
return np.asarray(test_list, dtype=int)
else:
return np.asarray([1,2,3,4],dtype=int)
test_numba = numba.jit("int64[:](int32[:],int32)")(test)
# calling numba function
test_numba(np.asarray([1,2,3,4],dtype=int),1)
# calling python function
test(np.asarray([1,2,3,4],dtype=int),1)
Numba签名期望使用Numpy
-Arrays。如果只需要签名,就可以使它起作用:
test_numba = numba.jit()(test)
但是由于这会退回到Python列表,因此无法提供任何提速。
使用您的签名,您可以强制numba假设将anint32
1D numpy.array
作为第一个参数传递,并将标量uint
作为第二个参数传递。并且该函数应返回int64
1D numpy.array
。但是您实际上返回了一个列表,因此numba
无法编译该函数。
另请参阅numba签名和渴望的编译
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句