在`for`循环

时间:2017-07-11 18:59:42

标签: python numpy numba

我正在使用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))

为什么会这样?

0 个答案:

没有答案