bob gailer wrote: > Andy Cheesman 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. >> > As an APL programmer I appreciate your approach. > I'm not a numpy expert. I'm assuming one can apply *for* to an array to > iterate thru the rows. Try this: > > Let's fix that a bit (assumes 0 origin indexing): > for answer, row in enumerate(a): > if row == b: > break > else: > # do something to handle no match > > Cheers, > nice person > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > >
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor