[Numpy-discussion] Getting the indexes of the myarray.min()
Tim Hochberg
tim.hochberg at cox.net
Wed May 12 13:14:05 CDT 2004
Álvaro Tejero Cantero wrote:
>Hello,
>
>I am new to numarray. I have been searching the documentation, and see
>no evident vectorial and concise way to get the indexes for the minimum
>of an array times.min().
>
>
If I understand your question correctly, you want argmin:
>>> import numarray as na
>>> from numarray import random_array
>>> times = random_array.randint(0, 16, [4,4])
>>> times
array([[15, 3, 11, 10],
[ 1, 1, 15, 7],
[ 4, 3, 5, 6],
[10, 15, 12, 3]])
>>> na.argmin(times) # Takes min along axis 0
array([1, 1, 2, 3])
>>> na.argmin(times, 1) # Take min along axis 1
array([1, 1, 1, 3])
-tim
>Currently my two alternatives are: (times is NxN array)
>
>husband, wife = nonzero(equal(times.min(),times))
>#gives tuple of 1x1 arrays, each containing one index
>
>and (even uglier)
>
>husband = compress(times.min()==times,indices([N,N])[0])
>wife = compress(times.min()==times,indices([N,N])[1])
>
>These are weird ways to get something as simple. I am surely missing
>something, but I have tried several slicing strategies before without
>success.
>
>For getting the minimum times in each row I use:
>
>choose(argmin(times),transpose(times))
>
>What are the idioms in numpy for these tasks?
>
>
>Thank you very much in advance, á.
>
>I would
>
>
>
More information about the Numpy-discussion
mailing list