我的函数将一个 numpy 数组列表和一个字典(或一个字典列表)作为输入参数,并返回一个值列表。numpy 数组的列表很长,并且数组可能具有不同的形状。虽然我可以单独传递 numpy 数组,但出于管理目的,我真的很想形成一个 numpy 数组元组并将它们这样传递到我的函数中。没有字典(根据 numba >=0.43 专门形成)整个设置工作正常 - 请参阅下面的脚本。因为输入和输出的结构是元组形式,所以JIT需要签名——没有它它无法确定数据结构的类型。但是,无论我如何尝试将字典“d”声明为 JIT 装饰器,我都无法使脚本正常工作。请帮助提供想法或解决方案(如果存在)。
非常感谢
'''Python:
import numpy as np
from numba import njit
from numba import types
from numba.typed import Dict
@njit( 'Tuple( (f8,f8) )(Tuple( (f8[:],f8[:]) ))' )
def somefunction(lst_arr):
arr1, arr2 = lst_arr
summ = 0
prod = 1
for i in arr2:
summ += i
for j in arr1:
prod *= j
result = (summ,prod)
return result
a = np.arange(5)+1.0
b = np.arange(5)+11.0
arg = (a,b) …Run Code Online (Sandbox Code Playgroud)