因为Numba 0.19能够在nopython模式下显式创建numpy数组。如何创建给定类型的数组?
from numba import jit
import numpy as np
@jit(nopython=True)
def f():
a = np.zeros(5, dtype = np.int)
上述代码失败,出现以下错误
TypingError: Failed at nopython (nopython frontend)
Undeclared Function(<built-in function zeros>)(int32, Function(<class 'int'>))
File "<ipython-input-4-3169be7a8201>", line 6
答案 0 :(得分:4)
您应该使用numba
dtypes而不是numpy
import numba
import numpy as np
@numba.njit
def f():
a = np.zeros(5, dtype=numba.int32)
return a
In [8]: f()
Out[8]: array([0, 0, 0, 0, 0], dtype=int32)
答案 1 :(得分:1)
在python 2.7中,似乎np.int确实有效。
至于来自dlenz的解决方法,我想指出使用np.int32确实也能正常工作......如果你想在某些时候删除numba.njit,那么代码可以不加修改地工作无论出于何种原因。