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

mark markbak@gmail....
Wed Aug 15 10:01:11 CDT 2007


Maybe this is not the intended use of where, but it seems to work:
>>> from numpy import * # No complaining now
>>> a = arange(12)
>>> a.shape = (4,3)
>>> a
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
>>> b = array([6,7,8])
>>> row = all( equal(a,b), 1 )
>>> where(row==True)
(array([2]),)

On Aug 15, 1:38 pm, "Matthieu Brucher" <matthieu.bruc...@gmail.com>
wrote:
> The where function ?
>
> Matthieu
>
> 2007/8/15, mark <mark...@gmail.com>:
>
>
>
> > Oops, 'find' is in pylab (matplotlib).
> > I guess in numpy you have to use 'where', which does almost the same,
> > but it returns a Tuple.
> > Is there a function that is more like the find in matplotlib?
> > Mark
>
> > On Aug 15, 12:26 pm, Andy Cheesman <Andy.chees...@bristol.ac.uk>
> > wrote:
> > > Thanks for the speedy response but where can I locate the find function
> > > as it isn't in numpy.
>
> > > Andy
>
> > > mark wrote:
> > > > 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...@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...@scipy
> > .orghttp://projects.scipy.org/mailman/listinfo/numpy-discussion
>
> > > > _______________________________________________
> > > > Numpy-discussion mailing list
> > > > Numpy-discuss...@scipy.org
> > > >http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
> > > _______________________________________________
> > > Numpy-discussion mailing list
> > > Numpy-discuss...@scipy
> > .orghttp://projects.scipy.org/mailman/listinfo/numpy-discussion
>
> > _______________________________________________
> > Numpy-discussion mailing list
> > Numpy-discuss...@scipy.org
> >http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
>
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discuss...@scipy.orghttp://projects.scipy.org/mailman/listinfo/numpy-discussion



More information about the Numpy-discussion mailing list