【发布时间】:2021-01-22 11:43:51
【问题描述】:
我有以下数组:
tasks = [["LNWBN","2017-08-13","2017-12-24","Corey","Kyle","Kaleb","Reuben"],
["NSXEN","2017-08-20","2017-09-18","Kai"],
["DNMDC","2017-06-19","2017-08-07","Kaleb","Kai","Kyle","Reuben"],
["UYWEQ","2017-04-23","2017-07-18","Corey","Kyle","Reuben","Kai"],
["LIVNH","2017-11-01","2017-12-24","Kaleb","Kai"]]
我想按第三列后跟第一列排序,结果是:
tasks = [["UYWEQ","2017-04-23","2017-07-18","Corey","Kyle","Reuben","Kai"],
["DNMDC","2017-06-19","2017-08-07","Kaleb","Kai","Kyle","Reuben"],
["NSXEN","2017-08-20","2017-09-18","Kai"],
["LIVNH","2017-11-01","2017-12-24","Kaleb","Kai"],
["LNWBN","2017-08-13","2017-12-24","Corey","Kyle","Kaleb","Reuben"]]
我尝试使用 lexsort:
a = np.array(tasks)
ind = np.lexsort((a[:,2],a[:,0]))
sorted_tasks = a[ind]
这是这里的最佳解决方案Sorting a 2D numpy array by multiple axes 但我收到以下错误:
ind = np.lexsort((a[:,2],a[:,0]))
IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed
我不必使用 numpy,但这是我发现按多个轴对 2D 数组进行排序的唯一方法
感谢任何帮助。
【问题讨论】:
标签: python numpy sorting multidimensional-array