Python 在`for`循环中的空列表上使用`numba`时出错
我正在使用python 2.7和Python 在`for`循环中的空列表上使用`numba`时出错,python,numpy,numba,Python,Numpy,Numba,我正在使用python 2.7和numbaversion0.24.0 我正试图用numba加速我的代码。在我的代码中,我创建了一个空的列表,我创建了一堆numpy数组,我在创建它们时将它们附加到列表,最后我将它们组合在一起,形成一个大的numpy.array 然而,当我尝试这样做时,我得到了一个错误。我已经创建了以下问题的可复制片段: from numba.decorators import autojit import numpy as np def mult(x): y = []
numba
version0.24.0
我正试图用numba加速我的代码。在我的代码中,我创建了一个空的列表
,我创建了一堆numpy
数组,我在创建它们时将它们附加到列表
,最后我将它们组合在一起,形成一个大的numpy.array
然而,当我尝试这样做时,我得到了一个错误。我已经创建了以下问题的可复制片段:
from numba.decorators import autojit
import numpy as np
def mult(x):
y = []
for _ in range(4):
y.append(x)
return np.vstack(y)
jit_mult = autojit(mult)
foo = jit_mult(np.random.randn(2, 2))
>> ValueError: Cannot type empty list
然而,只要稍作更改,就会消除错误:
from numba.decorators import autojit
import numpy as np
def mult(x):
y = []
y.append(x) # This line was added
for _ in range(3):
y.append(x)
return np.vstack(y)
jit_mult = autojit(mult)
foo = jit_mult(np.random.randn(2, 2))
这是为什么?对于较新的版本来说效果很好,更新numba不是一个选项?numba的当前版本是0.33,0.34可能很快就会发布。如果可能的话,我会更新,因为这是一个快速发展的项目。更新numba解决了我的问题。请把它作为一个答案贴出来,这样我就可以为解决这个问题而表扬。我现在使用的是版本
0.34.0