455,538 Members | 1,337 Online
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 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
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 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.