高效排序大型列表列表"在Python中

时间:2016-09-22 20:10:20

标签: python sorting numpy

我尝试使用Python / NumPy对列表列表进行排序"其中包括" row,col,value"的子列表提取了一系列我已压缩到列表中的numpy数组元素。我尝试对这些子列表中的第3项进行排序,并且itemgetter排序在相对较小的列表上运行正常,但是当我进入数百万个元素的列表时,排序失败。

我正在使用:

zip(*np.where(detected_locations))

创建一个行/列值的初始列表,我将通过迭代来提取数组元素并附加到每个子列表,从而导致列表未排序...

[(0, 108, 94.16000366210938), (0, 131, 94.8499984741211), (0, 177, 95.41000366210938), (0, 210, 95.63999938964844), (0, 250, 95.75), (0, 256, 95.87999725341797), (0, 269, 95.97000122070312), ...

我想排序第3个元素,到这个列表:

[(375, 722, 80.83000183105469), (375, 727, 80.87999725341797), (378, 728, 80.87999725341797), (373, 717, 80.9000015258789), (374, 725, 80.9000015258789), (378, 723, 80.9000015258789),

这是适用于较小列表的代码,但不适用于较大的列表:

 SortedList = sorted(theList,key=itemgetter(2))

有人可以建议替代解决方案吗?我需要做的就是能够遍历第3个元素的每个行/列条目按升序排列。

0 个答案:

没有答案