By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
455,538 Members | 1,337 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 455,538 IT Pros & Developers. It's quick & easy.

numpy : argmin in multidimensional arrays

P: n/a
TG
Hi there.

I am working with multi-dimensional arrays and I need to get
coordinates of the min value in it.

using myarray.argmin() returns the index in the flatten array, which is
a first step, but I wonder if it is possible to get the coordinates
directly as an array, rather than calculating them myself by using this
flat index and the shape of the array.

well, in fact i'm not sure to understand how argmin(myarray) works,
when myarray is multidimensional.

Thanks

Jul 6 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a
TG wrote:
Hi there.

I am working with multi-dimensional arrays and I need to get
coordinates of the min value in it.

using myarray.argmin() returns the index in the flatten array, which is
a first step, but I wonder if it is possible to get the coordinates
directly as an array, rather than calculating them myself by using this
flat index and the shape of the array.

well, in fact i'm not sure to understand how argmin(myarray) works,
when myarray is multidimensional.

By default, the argmin method flattens the array and returns the flat
index. You can get the corresponding element using

myarray.flat[index]

Alternatively, you can use the function unravel_index

unravel_index(flat_index, myarray.shape)

to return an N-dimensional index.
If you give an axis argument, then the minimum is found along the
specified dimension and you get an N-1 dimensional array of indices that
will all be between 1 and myarray.shape[axis]
-Travis

Jul 6 '06 #2

P: n/a
TG
thanks. unravel_index do the trick.

Travis E. Oliphant wrote:
TG wrote:
Hi there.

I am working with multi-dimensional arrays and I need to get
coordinates of the min value in it.

using myarray.argmin() returns the index in the flatten array, which is
a first step, but I wonder if it is possible to get the coordinates
directly as an array, rather than calculating them myself by using this
flat index and the shape of the array.

well, in fact i'm not sure to understand how argmin(myarray) works,
when myarray is multidimensional.


By default, the argmin method flattens the array and returns the flat
index. You can get the corresponding element using

myarray.flat[index]

Alternatively, you can use the function unravel_index

unravel_index(flat_index, myarray.shape)

to return an N-dimensional index.
If you give an axis argument, then the minimum is found along the
specified dimension and you get an N-1 dimensional array of indices that
will all be between 1 and myarray.shape[axis]
-Travis
Jul 6 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.