<[EMAIL PROTECTED]> wrote in news:[EMAIL PROTECTED] > I have two one-dimensional Numeric arrays, and I need to know the > indices in the second array of elements from the first. > > so if i had: > > a=array([2,4,6]) > b=array([2,3,4,5,6]) > > i want a function match that does this: > > >>> match(a,b) > array([0,2,4]) > > i have something that works, but it involves converting things to lists > and using 'in', and it is rather slow. if someone could point me to a > better solution, i would appreciate it.
I have no idea about Numeric array module, so I will use the built-in Python one for it (how about the speed if compared to Numeric arrays?): from array import array a = array('I', [2,4,6]) b = array('I', [2,3,4,5,6]) def match(a,b): retVal = array('I') for item in a: retVal.append(b.index(item)) return retVal print a print b print str(match(a,b)) Outputs: array('I', [2L, 4L, 6L]) array('I', [2L, 3L, 4L, 5L, 6L]) array('I', [0L, 2L, 4L]) Claudio -- http://mail.python.org/mailman/listinfo/python-list