Argsort以相反的顺序返回负值

时间:2016-02-20 23:18:30

标签: python arrays sorting

所以我有一个二维数组,其中第一列由-1.01.0之间的浮点数组成。我想基于第一列对数组进行排序,从最低到最高,这样:

data[0,data[0,:].argsort()]

但问题是负值是从最高值到最低值排序,因此-0.26位于-0.56之前,而正值则从最低到最高排序0.26之前例如0.56

为什么会发生这种情况?如何才能获得正确的结果,也就是说负值是从最低值到最大值列出的?

1 个答案:

答案 0 :(得分:2)

您的数组是一个字符串数组,因此您需要先将其转换为float数组:

data = data.astype(float)
data[0,data[0,:].argsort()]