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

时间:2014-05-20 20:51:27

标签: python sorting matplotlib

出于某种原因,我有一个未排序的数据表(仅涉及前两列),如下所示:

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表,并且每个组件的内容由3ed列中的颜色值表示。

1 个答案:

答案 0 :(得分: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]