# [SciPy-user] How to use argmax ?

Stefan van der Walt stefan@sun.ac...
Tue Oct 23 01:28:22 CDT 2007

```Hi,

You can access the maximum directly as follows:

x = N.array([[10,50,30],[60,20,40]])
p = x.argmin()
x.flat[p]

You can also convert 'p' to an index, using

N.unravel_index(p,x.shape)

Regards
Stéfan

On Mon, Oct 22, 2007 at 11:00:18AM -0700, LB wrote:
>
>     Hi,
>
> Let's say we have an array a :
>
> If a is 1D, we have :
> >>> a = array([1, 2, 5, 6,3, 4])
> >>> ind = a.argmax()
> >>> a[ind]
> 6
> >>> a[ind] == a.max()
> True
>
> but if a is 2D (or more) :
>
> a   = array([[10,50,30],[60,20,40]])
>
> I can know where the maxima are with the argmax function :
> ind = a.argmax(axis=0)
> >>> a
> array([[10, 50, 30],
>        [60, 20, 40]])
> >>> ind
> array([1, 0, 1])
>
> But what if a is 2D or more :
> >>> a = array([[10, 20, 14], [60, 5, 7]])
> >>> ind = a.argmax(axis=0)
> >>> a
> array([[10, 20, 14],
>        [60,  5,  7]])
> >>> ind
> array([1, 0, 0])
> >>> a[ind]
> array([[60,  5,  7],
>        [10, 20, 14],
>        [10, 20, 14]])
> >>> a.max(axis=0)
> array([60, 20, 14])
>
> How can I combine a and ind to access to the max ?
>
> --
> LB
```