[B,IX] = sort(A,...) - Order for sort()-function

Orlando Döhring orl at gmx.de
Tue May 29 10:34:22 EDT 2007


Dear community,

I want to use the sort function to sort a (nested) list. General information
can be found below.

http://www.python.org/doc/2.4.2/lib/typesseq-mutable.html
http://wiki.python.org/moin/HowTo/Sorting
http://www.python.org/doc/2.4.4/whatsnew/node12.html

I want to solve the following problem. Given a list I do not only want to
retrieve the sorted list but also the position of the original elements (IX
below). The example is taken from Matlab syntax:

http://www.mathworks.com/access/helpdesk/help/techdoc/ref/sort.html

'[B,IX] = sort(A,...) also returns an array of indices IX, where
size(IX) == size(A). If A is a vector, B = A(IX). If A is an m-by-n matrix,
then each column of IX is a permutation vector of the corresponding column
of A, such that

for j = 1:n
    B(:,j) = A(IX(:,j),j);
end'

--

A = [ 3 7 5
      0 4 2 ];

# in Python: A = [[3,7,5],[0,4,2]]

[B,IX] = sort(A,2)

# sort by rows

B =
     3     5     7
     0     2     4

IX =
     1     3     2
     1     3     2

# first line: 3 was formerly in the first position, 5 formerly in position
3, 7 formerly in position 2
# second line: similiarly


Yours,

Orlando
--
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20070529/7df8574a/attachment.html>


More information about the Python-list mailing list