【发布时间】:2014-08-24 17:37:29
【问题描述】:
我有两个整数数组
a = numpy.array([1109830922873, 2838383, 839839393, ..., 29839933982])
b = numpy.array([2838383, 555555555, 2839474582, ..., 29839933982])
len(a) ~ 15,000 和 len(b) ~ 200 万。
我想要的是找到与数组 a 中的元素匹配的数组 b 元素的索引。现在,我正在使用列表理解和numpy.argwhere() 来实现这一点:
bInds = [ numpy.argwhere(b == c)[0] for c in a ]
但是,显然,完成此操作需要很长时间。而且数组 a 也会变大,所以这不是明智的选择。
考虑到我在这里处理的大型数组,有没有更好的方法来实现这个结果?目前执行此操作大约需要 5 分钟。需要任何加速!
更多信息:我希望索引也匹配数组 a 的顺序。 (谢谢查尔斯)
【问题讨论】:
-
也许你可以创建一个 hashmap 映射元素从
a到它们各自的索引。然后你只需要在地图上查找它们。
标签: python arrays search numpy indices