NotImplementedError:range_state_int64不能表示为Numpy dtype

时间:2019-06-07 16:35:39

标签: python python-2.7 numba

我正在尝试编写一个函数,该函数初始化数组并在返回之前将其改组。     将numba导入为nb

push 0

错误消息说我使用了不受支持的功能或数据类型:

@nb.jit(nopython=True, cache=True)
def test(x):
    ind = np.array(range(len(x)))
    np.random.shuffle(ind)
    return ind

numba是否支持numpy.random.shuffle()?如何修改?谢谢!

1 个答案:

答案 0 :(得分:1)

这实际上与random.shuffle无关,因为numba supports the random module out of the box

这里的问题是设置了nopython标志时numba cannot support the range object(因为它是一个python对象)。用range代替np.arange

@nb.njit(cache=True)  # same as @nb.jit(nopython=True, ...)
def test(x):
    ind = np.arange(len(x))
    np.random.shuffle(ind)
    return ind

test([1, 2, 3])
# array([1, 0, 2])