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



我想用四个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]]

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

 time_origin.sort(key=len)

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

尝试使用内置的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函数。

最新更新