我正在使用python 2.7和numba
版本0.24.0
。
我正在尝试用numba来加速我的代码。在我的代码中,我创建了一个空的list
,我创建了一堆numpy
数组,我在创建它们时将它们附加到list
,然后我np.vstack
将它们组合在一起最后形成一个大的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))
为什么会这样?