Thank you, Tim. argsort() and take() does provide a easy way to sort an array based on any col or row. But for the second question, it doesn't return the result I want. As below, softrank or softrank1 are functions I am currently using for get the rank of a vector(first is more efficient). It returns the index of each value from original array/list in sorted array/list. I hope there is an efficient function in array level to do the same work.

from Numeric import * a=array([5,2,3]) argsort(a) array([1, 2, 0]) def sortrank(list): ... n=len(list) ... li_a=[(i,list[i]) for i in range(n)] ... li_a.sort(lambda a,b:cmp(a[1],b[1])) ... li_b=[(i,li_a[i]) for i in range(n)] ... li_b.sort(lambda a,b:cmp(a[1][0],b[1][0])) ... return [x[0] for x in li_b] ... sortrank(a) [2, 0, 1] def sortrank2(li): ... li_sorted=li[:] ... li_sorted.sort() ... return [li_sorted.index(x) for x in li] sortrank1(list(a)) [2, 0, 1]

Thanks again. Chunlei Tim Hochberg wrote:

CL WU wrote:

Hi, group, I am new to numpy. I have 2 questions for array sort.

1. How to sort an array by its one column or one row? I know python build-in sort() can do it for list by passing own cmp function. but array function sort() will sort each column or row seperately,as I know. I don't want to convert array to list to sort and then convert back to array.

I think you want argsort plus take. For example, the following sorts on the second column of a:

a = array([[4,5,6], [1,2,3], [7,8,9]]) arg = argsort(a[:,1]) take(a, arg, 0)

2. How to get the rank of a rank-0 array? The first "rank" means the order of each element after sorting, instead of the "dimension" meaning in numpy. Just like "rank()" function in splus.

If I understand you correctly, you want argsort as mentioned above.

Regards,

-tim

Thank you

Chunlei

------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion

------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion