February 2019
Intermediate to advanced
672 pages
16h 50m
English
There are some instances where Numba cannot properly infer the variable types and will refuse to compile. In the following example, we define a function that takes a nested list of integers and returns the sum of the element in every sublist. In this case, Numba will raise ValueError and refuse to compile:
a = [[0, 1, 2], [3, 4], [5, 6, 7, 8]] @nb.jit def sum_sublists(a): result = [] for sublist in a: result.append(sum(sublist)) return result sum_sublists(a) # ValueError: cannot compute fingerprint of empty list
The problem with this code is that Numba is not able to determine the type of the list and fails. A way to fix this problem is to help the compiler determine the right type by initializing the list with a sample ...