[Numpy-discussion] Finding a row match within a numpy array

mark markbak at gmail.com
Wed Aug 15 06:09:16 EDT 2007


I think you can create an array with a true value in the right spot as
folows:

row = all( equal(a,b), 1 )

Then you can either find the row (but you already knew that one, as it
is b)

a[row]

or the row index

find(row==True)

Mark

On Aug 15, 11:53 am, Andy Cheesman <Andy.chees... at bristol.ac.uk>
wrote:
> Dear nice people
>
> I'm trying to match a row (b) within a large numpy array (a). My most
> successful attempt is below
>
> hit = equal(b, a)
> total_hits = add.reduce(hit, 1)
> max_hit = argmax(total_hits, 0)
> answer = a[max_hit]
>
> where ...
> a = array([[ 0,  1,  2,  3],
>            [ 4,  5,  6,  7],
>            [ 8,  9, 10, 11],
>            [12, 13, 14, 15]])
>
> b = array([8,  9, 10, 11])
>
> I was wondering if people could suggest a possible more efficient route
> as there seems to be numerous steps.
>
> Thanks
> Andy
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discuss... at scipy.orghttp://projects.scipy.org/mailman/listinfo/numpy-discussion




More information about the NumPy-Discussion mailing list