使用np.arrays python对列表进行排序

时间:2015-03-04 00:50:34

标签: python numpy

我想用四个numpy数组对列表进行排序。

import numpy as np 
import datetime

time_origin=[]

filelist=['3.csv','2.csv','1.csv','4.csv'] 

for i in np.arange(4):
    time_origin.append(np.loadtxt(
        filelist[i],delimiter=',',skiprows=1,usecols=(0,),unpack=True)) 

time_origin.sort()

然而,它不起作用。

预期结果:

例如:

a=[array[1,2,3,4],array[6,2],array[0,12,1,4,5]]

我想根据每个数组的长度对其进行排序

预期结果是:

a=[array[6,2],array[1,2,3,4],array[0,12,1,4,5]]

2 个答案:

答案 0 :(得分:5)

使用len作为排序键进行排序:

 time_origin.sort(key=len)

Python按元素排序列表,如果所有元素都相同,则较长的列表将在之后排序,但[1,2,3]将在[12]之前排序,因为12 > 1

答案 1 :(得分:2)

尝试使用内置的sorted功能:

arrays = [np.array([1,2,3,4]), np.array([1,2]), np.array([1,2,3,4,5])
a = sorted(arrays, key=lambda x:len(x))

这里的核心思想是使用lambda函数。