Я хочу нарезать 2D-массив Numpy внутри функции, украшенной Numba jit. Индексы строк и столбцов доступны в виде списков / массивов numpy. Вот MWE
import numpy as np
from numba import jit
@jit(nopython=True)
def func(a,rowinds,colinds):
return np.sum(a[rowinds,colinds])
A = np.random.random([10,10])
rowinds = np.array([0,1,2])
colinds = np.array([3,4,5])
res = func(A,rowinds,colinds)
Однако это вызывает следующую ошибку:
Failed in nopython mode pipeline (step: nopython frontend)
No implementation of function Function(<built-in function getitem>) found for signature:
>>> getitem(array(float64, 2d, C), UniTuple(array(int64, 1d, C) x 2))
Есть ли способ обойти это без ручного перебора элементов rowinds
или colinds
?
rowinds
иcolinds
? может быть еще более эффективным для дальнейшей оптимизации - person Bruno Magacho   schedule 19.07.2021