matching elements of numeric arrays

Claudio Grondi claudio.grondi at
Fri Oct 14 02:03:28 CEST 2005

<daniel.neilson at> wrote in
news:1129239096.340248.222440 at
> 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:
  return retVal

print a
print b
print str(match(a,b))


array('I', [2L, 4L, 6L])
array('I', [2L, 3L, 4L, 5L, 6L])
array('I', [0L, 2L, 4L])


More information about the Python-list mailing list