我正在将MATLAB的代码转换为Python,以加快简单操作的速度。我编写了一个包含嵌套循环和条件语句的函数;循环的目的是返回与数组y相比,在数组x中最近元素的索引列表。我正在比较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
的示例数据输入,以便更清晰明了? - JoshAdel