【发布时间】:2011-01-20 23:22:12
【问题描述】:
我有两个数组,a1 和 a2。假设len(a2) >> len(a1),a1 是 a2 的子集。
我想要一种快速的方法来返回 a1 中所有元素的 a2 索引。执行此操作的时间密集型方法显然是:
from operator import indexOf
indices = []
for i in a1:
indices.append(indexOf(a2,i))
这当然需要很长时间 a2 很大。我也可以使用 numpy.where() 代替(尽管 a1 中的每个条目在 a2 中只会出现一次),但我不相信它会更快。我也可以只遍历一次大数组:
for i in xrange(len(a2)):
if a2[i] in a1:
indices.append(i)
但我确信有一种更快、更“numpy”的方法 - 我查看了 numpy 方法列表,但找不到任何合适的方法。
非常感谢,
D
【问题讨论】: