[Numpy-discussion] Remove duplicate columns

Keith Goodman kwgoodman at gmail.com
Thu May 6 13:34:19 EDT 2010


On Thu, May 6, 2010 at 10:25 AM, T J <tjhnson at gmail.com> wrote:
> Hi,
>
> Is there a way to sort the columns in an array?  I need to sort it so
> that I can easily go through and keep only the unique columns.
> ndarray.sort(axis=1) doesn't do what I want as it destroys the
> relative ordering between the various columns. For example, I would
> like:
>
> [[2,1,3],
>  [3,5,1],
>  [0,3,1]]
>
> to go to:
>
> [[1,2,3],
>  [5,3,1],
>  [3,0,1]]
>
> (swap the first and second columns).  So I want to treat the columns
> as objects and sort them.  I can do this if I convert to a python
> list, but I was hoping to avoid doing that because I ultimately need
> to do element-wise bitwise operations.

Assuming you want to sort columns by the values in the first row:

>> x
array([[2, 1, 3],
       [3, 5, 1],
       [0, 3, 1]])
>> idx = x[0,:].argsort()
>> x[:,idx]
array([[1, 2, 3],
       [5, 3, 1],
       [3, 0, 1]])



More information about the NumPy-Discussion mailing list