我想按行对矩阵进行升序排序,同时保留其列。
例如,我有这个矩阵:
my_scores = [
['1', 0.03, 0.4, 0.6, 0.01, 0.1],
['2', 0.02, 0.5, 0.7, 0.01, 0.1],
['3', 0.01, 0.5, 0.7, 0.02, 0.3],
['4', 0.01, 0.5, 0.7, 0.03, 0.4],
['5', 0.03, 0.1, 0.2, 0.03, 0.4],
]
第一列(索引0)不是用于排序的,只是一个信息列,指示元素名称。 我有一个向量[1,2,3,4,5],它表示我应该首先按照我的第二列(索引1)进行排序,然后按照第三列排序,依此类推...
因此,我的矩阵排序函数将输出:
[
['1', 0.03, 0.4, 0.6, 0.01, 0.1],
['5', 0.03, 0.1, 0.2, 0.03, 0.4],
['2', 0.02, 0.5, 0.7, 0.01, 0.1],
['4', 0.01, 0.5, 0.7, 0.03, 0.4],
['3', 0.01, 0.5, 0.7, 0.02, 0.3]]
例如,如果第二列的所有值都不同,我只需要按照第二列排序,但由于第1个和第5个元素以及第4个和第3个元素具有相同的值,因此我必须按照第3列、第4列、第4列和最后是第5列进行排序...
row[1:]
是一个切片,从第二个元素开始复制到结尾。 - Martijn Pieters