使用其他数组 python 的排序对数组列表进行排序
Sort a list of arrays using the sort of other array python
我有两个列表:二维数组列表及其生成时间,它是一个整数。它们的长度为 N,并且都“同样无序”。所以 通过使用索引对列表进行排序 'time' 我可以对二维数组的列表进行排序。
我想做这样的事情:
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) 我可以对我的 disordered_list
进行排序,但我想知道是否有更好的选择或者哪个是最好的。
谢谢
创建一个索引数组并根据time_list的值对其进行排序。然后使用这些索引构建两个数组的排序版本。
代码:
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
我有两个列表:二维数组列表及其生成时间,它是一个整数。它们的长度为 N,并且都“同样无序”。所以 通过使用索引对列表进行排序 'time' 我可以对二维数组的列表进行排序。
我想做这样的事情:
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) 我可以对我的 disordered_list
进行排序,但我想知道是否有更好的选择或者哪个是最好的。
谢谢
创建一个索引数组并根据time_list的值对其进行排序。然后使用这些索引构建两个数组的排序版本。
代码:
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