Я пытаюсь создать функцию jitclass со списком List of int.
Я пробовал различные сценарии ios (как показано в примере ниже), но у меня всегда появляется ошибка: ValueError : Невозможно ввести пустой список
Проблема заключается в том, что иногда требуется, чтобы список int был пустым, что приводит к ошибке
import numpy as np
from numba import jitclass,jit,njit,typeof
from numba import boolean, int32, float64,uint8
# spec1 = [
# ('list_int' ,int32[:]),
# ('list_float' ,float64[:]),]
# spec1 = [
# ('list_int' ,typeof([[],[1,2],[1,2,3,4,5,],[]])),
# ('list_float' ,typeof([[3.2],[],[3.3,6.8,5.],[]]))]
spec1 = [
('list_int' ,typeof(tuple([[],[1,2],[1,2,3,4,5,],[]]))),
('list_float' ,typeof(tuple([[3.2],[],[3.3,6.8,5.],[]])))]
@jitclass(spec1)
class example():
def __init__(self, list_int, list_float):
self.list_int = list_int
self.list_float = list_float
list_intA = [[],[1,2],[1,2,3,4,5,],[]]
list_floatB = [[3.2],[],[3.3,6.8,5.],[]]
# my_ex = example( list_intA ,
# list_floatB )
my_ex = example( tuple([np.array(l, dtype=np.int32) for l in list_intA]) ,
tuple([np.array(l, dtype=np.float64) for l in list_floatB]) )
# my_ex = example(np.array([np.array(l, dtype=np.int32) for l in list_intA]),
# np.array([np.array(l, dtype=np.int32) for l in list_floatB]))