KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have two arrays, a1 and a2. Assume len(a2) >> len(a1) , and that a1 is a subset of a2. I would like a quick way to return the a2 indices of all elements in a1. The time-intensive way to do this is obviously: from operator import indexOf indices = [] for i in a1: indices.append(indexOf(a2,i)) This of course takes a long time where a2 is large. I could also use numpy.where() instead (although each entry in a1 will appear just once in a2), but I'm not convinced it will be quicker. I could also traverse the large array just once: for i in xrange(len(a2)): if a2[i] in a1: indices.append(i) But I'm sure there is a faster, more 'numpy' way - I've looked through the numpy method list, but cannot find anything appropriate. Many thanks in advance, D
Tags (comma-separated)
Save Edits
Cancel