[Numpy-discussion] Remove duplicate columns

T J tjhnson at gmail.com
Thu May 6 16:37:25 EDT 2010


On Thu, May 6, 2010 at 10:34 AM, Keith Goodman <kwgoodman at gmail.com> wrote:
> 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:
>

Not quite. I want the columns treated as objects...not as the first
element in the column.  A better example:

>>> x
array([[3, 2, 2, 2, 2],
           [2, 2, 0, 2, 2],
           [0, 1, 1, 0, 1],
           [5, 5, 3, 0, 5]])

>>> desired
array([[2, 2, 2, 2, 3],
           [0, 2, 2, 2, 2],
           [1, 0, 1, 1, 0],
           [3, 0, 5, 5, 5]])

>>> what_is_really_desired
array([0,1,2,3])  # signifying unique columns



More information about the NumPy-Discussion mailing list