【发布时间】:2017-04-22 04:11:32
【问题描述】:
我有 2 个大小不等的数组:
>>> np.size(array1)
4004001
>>> np.size(array2)
1000
现在,需要将array2 中的每个元素与array1 中的所有元素进行比较,以找到与array2 中该元素的值最接近的元素。 找到这个值后,我需要将它存储在一个大小为 1000 的不同数组中 - 一个对应于 array2 的大小。
执行此操作的繁琐而粗略的方法可能是使用 for 循环并从数组 2 中获取每个元素,从数组 1 元素中减去其绝对值,然后取最小值 - 这将使我的代码非常慢。
我想使用 numpy 矢量化操作来执行此操作,但我有点碰壁了。
【问题讨论】:
-
先对两个数组进行排序。然后逐步遍历大数组,保留小数组中当前最近元素的索引。根据需要增加索引。如果 itertools 中有一些东西可以加快这个速度,我不会感到非常惊讶。