Я новичок в пакете numba в python.Я не уверен, правильно ли я использую numba.jit, но код работает слишком медленно с 23,7 с за цикл по строке: Z1 = mmd (X, Y, 20). Как правильно оптимизировать код?Мне нужна ваша помощь, ребята.Спасибо.
Вот мой код:
import pandas as pd
import numba as nb
import numpy as np
@nb.jit
def mmd(array1, array2, n):
n1 = array1.shape[0]
MMD = np.empty(n1, dtype = 'float64')
for i in range(n-1,n1):
MMD[i] = np.average(abs(array1[i+1-n:i+1] - array2[i]))
return MMD
X = np.array([i**2 for i in range(1000000)])
Y = np.array([i for i in range(1000000)])
Z1 = mmd(X,Y,20)
РЕДАКТИРОВАТЬ: еще больше упростил код
РЕДАКТИРОВАТЬ 2: пробовал @ nb.jit (nopython = True), затемпоявляется сообщение об ошибке:
KeyError: "<class 'numba.targets.cpu.CPUTargetOptions'> does not support option: 'nonpython'"
также попытался:
@nb.jit(nb.float32[:](nb.float32[:],nb.float32[:],nb.int8))