我在 python 中有一个列表,第一个数字是 [[29.046875, 1], [33.65625, 1], [18.359375, 1], [11.296875, 1], [36.671875, 1], [23.578125 , 1],.......,[34.5625, 1]]
以上列表的 ID 为 listNumber。我正在尝试使用 numpy.argsort 根据浮点元素对其进行排序:
listNumber = np.array(listNumber)
print(np.argsort(listNumber))
但这给了我以下但不确定原因:
[[1 0]
[1 0]
[1 0]
...
[1 0]
[1 0]
[1 0]]
为什么要返回这个?还有另一种方法可以解决这个问题吗?
请您参考如下方法:
好的,所以我认为这里发生了两件事:
1- 你的列表是列表的列表
2- 'argsort' 函数:
returns the indices that would sort an array.
根据文档。
所以发生的事情是函数读取列表的每个项目,它本身就是一个列表,比如索引 0 是:
[29.046875, 1]
然后它说,好的,这是另一个列表,所以让我对它进行排序,然后根据如果它是新索引它会去哪里返回一个数字:
[29.046875, 1] -> [1, 0]
因为如果按升序排列,1 会排在 29 之前。 它为每个嵌套列表执行此操作,然后为您提供包含所有这些 1 和 0 的最终列表。
这回答了第一个问题。另一个用户能够回答第二个 :)
