[SciPy-User] Ranking a list of numbers
Jose Gomez-Dans
jgomezdans@gmail....
Thu Jun 3 09:20:35 CDT 2010
Hi,
I've done this with loops, but I am sure there is a much nicer way of doing
it with a couple of index tricks.
Let's say I've got an array of numbers. I want to convert it into an array
where each element is the rank of that element in the starting array (by
rank I mean its position when sorted in decreasing order)
For example, if my original array is
[ 0.012, 0.08, 2, 0.5, 0.010, 0.03]
my output array ought to look like this (starting at 1, rather than 0)
[ 5, 3, 1, 2, 6, 4 ]
meaning "the first element of the array is the 5th largest, the second is
the 3rd largest, the third is the largest" and so on.
The ordering can be done with argsort[::-1] (to get the decreasing order),
but to get the final array, I can only think of clumsy ways of doing loops.
Any ideas?
Thanks!
J
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20100603/897b73c1/attachment.html
More information about the SciPy-User
mailing list