Я пытаюсь numba оптимизировать некоторый код. Я рассмотрел исходные примеры в разделе 1.3.1 в руководстве пользователя 0.26.0 (http://numba.pydata.org/numba-doc/0.26.0/user/jit.html) и получил ожидаемые результаты, поэтому я не думаю, что проблема связана с установкой.python numba ошибка отпечатка пальца
Вот мой код:
import numba
import numpy
import random
a = 8
b = 4
def my_function(a, b):
all_values = numpy.fromiter(range(a), dtype = int)
my_array = []
for n in (range(a)):
some_values = (all_values[all_values != n]).tolist()
c = random.sample(some_values, b)
my_array.append(sorted([n] + c))
return my_array
print(my_function(a, b))
my_function_numba = numba.jit()(my_function)
print(my_function_numba(a, b))
Который после распечатки ожидаемых результатов от вызова My_function возвращает следующее сообщение об ошибке:
ValueError Traceback (most recent call last)
<ipython-input-8-b5d8983a58f6> in <module>()
19 my_function_numba = numba.jit()(my_function)
20
---> 21 print(my_function_numba(a, b))
ValueError: cannot compute fingerprint of empty list
Fingerprint пустого списка?
Отлично, большое спасибо. И я пошел от 91,3 микросекунд до 12 микросекунд. Любая причина, почему c = np.empty (b + 1, dtype = np.int32), а не c = np.empty (a, dtype = np.int32)? – zazizoma
В вашем коде выше 'c' есть длина' b', то перед добавлением вы добавляете '[n]', поэтому я думаю, что это правильная форма? – chrisb
Yup. Еще раз спасибо! – zazizoma