python - Argsort 以相反的顺序返回负值

标签 python arrays sorting

所以我有一个二维数组,其中第一列由 -1.01.0 之间的 float 组成。我想根据第一列对数组进行排序,从最低到最高,如下所示:

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

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

为什么会发生这种情况?我怎样才能得到正确的结果,即负值也按从最低到最大值的顺序列出?

最佳答案

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

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

关于python - Argsort 以相反的顺序返回负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35530305/

相关文章:

python - 如何在基于 Django 类的 View 中显示使用另一个模型的外键的注释?

python - 基于默认值列替换多列中的 NaN 的最有效方法是什么?

c++ - 二维数组 - 创建虚拟生物? (C++)

c - 快速排序实现无法正常工作

javascript - 按索引对字符串数组进行排序

PHP - 用数字对文件名数组进行排序?

python - 检查 python 列表中的成员资格问题

python - 我在虚拟环境外安装了一个包,但不能在虚拟环境中使用它

arrays - 迭代 SKShapeNodes 数组

Java Arrays.sort() 方法采用一维数组,但我也可以传递二维数组,那么为什么我不能执行 int[] a=b(其中 b 是二维数组)?