我有两个整数数组
a = numpy.array([1109830922873, 2838383, 839839393, ..., 29839933982])
b = numpy.array([2838383, 555555555, 2839474582, ..., 29839933982])
其中 len(a)
约为15,000,len(b)
约为2百万。
我想要找到数组 b 中与数组 a 相匹配的元素的索引。现在,我使用列表推导式和 numpy.argwhere()
来实现这个目标:
bInds = [ numpy.argwhere(b == c)[0] for c in a ]
然而,显然,完成这个任务需要很长时间。而且数组a会变得更大,所以这不是一个明智的选择。
考虑到我正在处理的大型数组,是否有更好的方法来实现这个结果?目前这需要大约5分钟的时间。需要任何加速!
更多信息:我希望索引也能匹配数组a的顺序。(感谢Charles)
a
映射到它们各自的索引。然后你只需要在映射中查找它们。 - tobias_k