gpt4 book ai didi

python - 在 numba 函数中创建一个新的列表/数组

转载 作者:行者123 更新时间:2023-12-05 07:51:11 24 4
gpt4 key购买 nike

“test_numba”下面的函数给出错误:“无法键入空列表”,但它在没有 numba 编译的情况下工作。

def test(list_test,count):

test_list =[]
for all in list_test:
test_list.append(all)

if count ==1:

return np.asarray(test_list, dtype=int)
else:
return np.asarray([1,2,3,4],dtype=int)

test_numba = numba.jit("int64[:](int32[:],int32)")(test)
# calling numba function
test_numba(np.asarray([1,2,3,4],dtype=int),1)
# calling python function
test(np.asarray([1,2,3,4],dtype=int),1)

最佳答案

Numba 签名需要 Numpy-Arrays。如果你只是省略签名,你可以让它工作:

test_numba = numba.jit()(test)

但由于这会回退到 Python 列表,因此不会提供任何加速。

使用您的签名,您强制 numba 假定 int32 1D numpy.array 作为第一个参数传递,标量 uint 作为第二个参数传递.该函数应返回一个 int64 1D numpy.array。但是你实际上返回了一个列表,所以 numba 无法编译该函数。

另见 numba signatures and eager compilation

关于python - 在 numba 函数中创建一个新的列表/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35318186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com