如何在Python中对数据表进行排序?

-1 投票
1 回答
4850 浏览
提问于 2025-04-18 07:08

出于某种原因,我有一个数据表,这个表的数据是乱序的(主要是前两列的数据),如下所示:

1 2 0.9
2 2 0.4
3 3 0.3
1 3 0.4
1 1 0.5
2 3 0.9
2 1 0.9
3 1 0.8
3 2 0.9

为了在Python中正确地绘制这个数据(使用matplotlib的imshow),我需要将内容排序,排序后的样子如下:

1 1 ?
1 2 ?
1 3 ?
2 1 ?
2 2 ?
2 3 ?
3 1 ?
3 2 ?
3 3 ?

问号代表的是第三列相关的值。

另外,如果有人知道如何使用imshow来绘制乱序的数据表,那也会很有帮助。可以把下面的数据表想象成一个3x3的表格,前两列作为坐标,每个单元格的内容由第三列的值决定,颜色表示这个值。

1 个回答

4

假设你的数据长得像这样:

data=[[1, 2, 0.9],
      [2, 2, 0.4],
      [3, 3, 0.3],
      [1, 3, 0.4],
      [1, 1, 0.5],
      [2, 3, 0.9],
      [2, 1, 0.9],
      [3, 1, 0.8],
      [3, 2, 0.9]]

你可以直接这样做:

data.sort()

列表的默认排序是按照第一个元素、第二个元素、第三个元素,依此类推来排序的。要把你的数据整理成这种格式,你可以:

with open("./data.dat") as file:
    data = [map(float, ln.split()) for ln in file]

撰写回答