我想用四个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]]
答案 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函数。