Python 使用其他数组的排序对数组列表进行排序

Python 使用其他数组的排序对数组列表进行排序,python,arrays,sorting,np.argsort,Python,Arrays,Sorting,Np.argsort,我有两个列表:一个2D数组列表及其生成时间,它是一个整数。它们的长度为N,并且都“同样无序”。因此通过使用索引对列表“时间”进行排序,我可以对2D数组列表进行排序。 我想做一些类似的事情: ordered_list_of_arrays = np.asarray(disordered_list).argsort(np.asarray(time)) ordered_time = np.asarray(time).sort() 另一种选择是将其保留为列表: ordered_arrays = diso

我有两个列表:一个2D数组列表及其生成时间,它是一个整数。它们的长度为N,并且都“同样无序”。因此通过使用索引对列表“时间”进行排序,我可以对2D数组列表进行排序。

我想做一些类似的事情:

ordered_list_of_arrays = np.asarray(disordered_list).argsort(np.asarray(time))
ordered_time = np.asarray(time).sort()
另一种选择是将其保留为列表:

ordered_arrays = disordered_list[np.argsort(np.asarray(time))]
TypeError: only integer scalar arrays can be converted to a scalar index
通过迭代np.argsort(time),我可以对我的
无序列表
进行排序,但我想知道是否有更好的选择,或者哪个是最好的


谢谢

创建一个索引数组,并根据时间列表的值对其进行排序。然后使用这些索引构造两个数组的排序版本

代码:

li.sort(key=lambda x:time\u list.index(x))
def sorted_lists(time_list, array_list):
    sorted_indices = sorted(range(len(time_list)), key=lambda i: time_list[i])
    sorted_time_list = [time_list[i] for i in sorted_indices]
    sorted_array_list = [array_list[i] for i in sorted_indices]
    return sorted_time_list, sorted_array_list