[Numpy-discussion] 1D array sorting ascending and descending by fields
Tue Jun 5 09:49:44 CDT 2012
On Tue, Jun 5, 2012 at 1:17 AM, Benjamin Root <firstname.lastname@example.org> wrote:
> On Monday, June 4, 2012, Chris Barker wrote:
>> On Mon, Jun 4, 2012 at 11:10 AM, Patrick Redmond <email@example.com>
>> > Here's how I sorted primarily by field 'a' descending and secondarily by
>> > field 'b' ascending:
>> could you multiply the numeric field by -1, sort, then put it back --
>> somethign like:
>> data *- -1
>> data_sorted = np.sort(data, order=['a','b'])
>> data_sorted *= -1
>> (reverse if necessary -- I lost track...)
> While that may work for this users case, that would not work for all dtypes.
> Some, such as timedelta, datetime and strings would not be able to be
> multiplied by a number.
> Would be an interesting feature to add, but I am not certain if the negative
> sign notation would be best. Is it possible for a named field to start with
> a negative sign?
Maybe add a reverse= argument (named after the corresponding argument
to list.sort and __builtins__.sorted).
# sorts in descending order, no fields required
np.sort([10, 20, 0], reverse=True)
# sorts in descending order
np.sort(rec_array, order=("a", "b"), reverse=True)
# ascending by "a" then descending by "b"
np.sort(rec_array, order=("a", "b"), reverse=(False, True))
More information about the NumPy-Discussion