Несмотря на поиск в Stack Overflow и в Интернете в целом, а также на чтение нескольких вопросов Stack Overflow и numba.pydata.org страниц, а также на изучение некоторых подсказок, как сообщить Numba, какие типы я хочу дать и из функций я не нахожу реальной логики того, как это работает.
Например, я экспериментировал с функцией, которая обрабатывает список целых чисел и выдает еще один список целых чисел, и, пока работает декоратор @numba.jit(numba.int64[:](numba.int64[:]))
, декораторы @numba.njit(numba.int64[:](numba.int64[:]))
и @numba.vectorize(numba.int64[:](numba.int64[:]))
не работают.
(njit
успешно прошел мимо декоратора и наткнулся на саму функцию; я предполагаю, что объединение элементов в список не является доступной функцией в режиме 'no python'
. vectorize
, однако, жалуется на сигнатуру , TypeError: 'Signature' object is not iterable
; возможно, беспокоит то, что одномерный массив может содержать один элемент без скобок, что не является итеративным?)
Есть ли простой способ понять, как работает Numba на достаточной глубине, чтобы предвидеть, как я должен выразить подпись?