【发布时间】:2016-08-18 12:27:50
【问题描述】:
数组 x 和 y 中的元素是浮点数。我想在数组 x 中找到与数组 y 中的值尽可能接近的元素(对于数组 y 中的每个值- 数组 x 中的一个元素)。此外,数组 x 包含 >10^6 个元素和数组 y 大约 10^3,这是 for 循环 的一部分,所以它应该是最好快速完成。
我试图避免将它作为一个新的 for 循环,所以我这样做了,但是对于一个大 y 数组来说它非常慢
x = np.array([0, 0.2, 1, 2.4, 3, 5]); y = np.array([0, 1, 2]);
diff_xy = x.reshape(1,len(x)) - y.reshape(len(y),1);
diff_xy_abs = np.fabs(diff_xy);
args_x = np.argmin(diff_xy_abs, axis = 1);
x_new = x[args_x]
我是 Python 新手,欢迎提出任何建议!
【问题讨论】: