Bazı kodları optimize etmek için numba deniyorum. 0.26.0 kullanıcı kılavuzundaki (http://numba.pydata.org/numba-doc/0.26.0/user/jit.html) 1.3.1 bölümündeki ilk örneklerle çalıştım ve beklenen sonuçları aldım, bu yüzden sorunun kurulum olduğunu düşünmüyorum.python numba fingerprint hatası
İşte benim kod:
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))
Hangi işlevim çağrısından beklenen sonuçların basılmasına sonra aşağıdaki hata iletisini döndürür: Boş listenin
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
Parmak İzi?
Mükemmel, çok teşekkürler. Ve 91.3 mikrosaniyeden 12 mikrosaniyeye gittim. Herhangi bir sebep neden c = np.empty (b + 1, dtype = np.int32) ve c = np.empty (a, dtype = np.int32)? – zazizoma
Yukarıdaki kodda 'c' uzunluk' b', sonra eklemeden önce [[n] 'eklediniz, bu yüzden bu doğru şekil olduğunu mu düşünüyorsunuz? – chrisb
Yup. Tekrar teşekkürler! – zazizoma