Как создать кортеж длины N в numba для маленьких N (или как быстро вычислить двунаправленные изменения между одномернымиPython

Программы на Python
Anonymous
Как создать кортеж длины N в numba для маленьких N (или как быстро вычислить двунаправленные изменения между одномерными

Сообщение Anonymous »

Вопрос:
Вот простая функция, которая работает с numpy, но не с numba:

Код: Выделить всё

    # @numba.jit(nopython=True, fastmath=False, parallel=False)
def testgetvalue(tgvarray, tgvindex):
tgvalue = tgvarray[tuple(tgvindex)]
return tgvalue
Как мне создать версию этой функции, работающую в numba?
Я пробовал:

Код: Выделить всё

    @numba.jit(nopython=True, fastmath=False, parallel=False)
def testgetvalue2(tgvarray, tgvindex):
tgvalue = tgvarray[tuple(tgvindex)]
currentdex = tgvindex[0]
tgvtemp = tgvarray[currentdex]
for idx in range(1, len(tgvindex)):
currentdex = tgvindex[idx]
tgvtemp =  tgvtemp[currentdex]
return tgvalue
но это также не работает в цифрах.
Я нашел этот вопрос, в котором в ответе говорится, что это возможно:

В более общем плане вы не можете создать N-арный кортеж, где N является переменной в функции Numba. Однако вместо этого вы можете сгенерировать и скомпилировать функцию для определенного N. Если N очень мало (например,

Подробнее здесь: https://stackoverflow.com/questions/790 ... kly-comput

Вернуться в «Python»