Я конвертирую код из MATLAB в python, чтобы ускорить выполнение простых операций. Я написал функцию, которая содержит вложенные циклы и условный оператор; цель цикла - вернуть список индексов для ближайших элементов в массиве x по сравнению с массивом y. Я сравниваю в порядке 1e5 элементов, выполнение которых занимает около 30 секунд. Любая помощь в ускорении этого процесса будет принята с благодарностью! У меня был частичный успех с использованием автоматического компилятора numba-pro:
@autojit()
def find_nearest(x,y,idx):
idx_old = 0
rng1 = range(y.shape[0])
rng2 = range(x.shape[0])
for i in rng1:
prev = abs(x[idx_old]-y[i])
for j in rng2:
if abs(x[j]-y[i]) < prev:
prev = abs(x[j]-y[i])
idx_old = j
idx[i] = idx_old
return idx
Извините за то, что я такой нуб, я новичок в python!
find_nearest
, просто так? - person JoshAdel   schedule 20.05.2015