I forgot to mention that i wanted this to work for general shape. So i modified it little bit
>>> x = array([[1,2,3,4,5], [6,7,8,7,6], [1,2,3,4,5]]) >>> cond = (x > 5) >>> loc= where(cond) >>> arg_max=argmax(x[cond]) >>> x[tuple([e[arg_max] for e in loc])] 8 Thanks for your solution. Shailendra On Fri, Apr 2, 2010 at 11:37 AM, Robert Kern <robert.k...@gmail.com> wrote: > On Fri, Apr 2, 2010 at 09:31, Shailendra <shailendra.vi...@gmail.com> wrote: >> Hi All, >> I have a following model problem. Let i have a array >>>>> x >> array([[1, 2, 3, 4, 5], >> [6, 7, 8, 7, 6], >> [1, 2, 3, 4, 5]]) >> >> suppose i apply some cond on it. >>>>> cond= x>5 >>>>> x[cond] >> array([6, 7, 8, 7, 6]) >> >> Now, i want to argmax on this >>>>> max=argmax(x[cond]) >>>>> max >> 2 >>>>> x[cond][max] >> 8 >> Now , I want to get the index of this element in x. How to acheive >> this. In real situation x will be huge. > > In [1]: x = array([[1,2,3,4,5], [6,7,8,7,6], [1,2,3,4,5]]) > > In [2]: x > Out[2]: > array([[1, 2, 3, 4, 5], > [6, 7, 8, 7, 6], > [1, 2, 3, 4, 5]]) > > In [3]: cond = (x > 5) > > In [4]: i, j = where(cond) > > In [5]: i > Out[5]: array([1, 1, 1, 1, 1]) > > In [6]: j > Out[6]: array([0, 1, 2, 3, 4]) > > In [7]: argmax(x[cond]) > Out[7]: 2 > > In [8]: i[2], j[2] > Out[8]: (1, 2) > > In [9]: x[i[2], j[2]] > Out[9]: 8 > > -- > Robert Kern > > "I have come to believe that the whole world is an enigma, a harmless > enigma that is made terrible by our own mad attempt to interpret it as > though it had an underlying truth." > -- Umberto Eco > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion