[Numpy-discussion] A newbie question: How to get the "rank" of an 1-d array
CL
anewgene at gmail.com
Mon Mar 27 08:37:04 EST 2006
Hi, group,
I need to get the "rank" of an 1-D array (ie. a vector). Note
that "rank" here is not the value returned from "rank(a_array)". It is
the order of the item in its sorted arrray. For example, I have a python
function called "listrank" to return the "rank" as below:
In [19]: x
Out[19]: array([1, 2, 5, 3, 3, 2])
In [20]: listrank(x)
Out[20]: [6, 4, 1, 2, 2, 4]
Somebody suggested me to use "argsort(argsort(x))". But the problem is
it does not handle ties. See the output:
In [21]: argsort(argsort(x))
Out[21]: array([0, 1, 5, 3, 4, 2])
I am wondering if there is a solution in numpy/numarray/numeric to get
this done nicely.
Thanks.
CL
More information about the NumPy-Discussion
mailing list