Python中不同排序技术的差异
这些都是不同类型的排序技术,其行为方式非常不同。让我们研究一下哪种技术如何工作,以及使用哪种技术。
假设’ a ‘是一个numpy数组
- a.sort()
(i)对数组进行原地排序并返回None
(ii)返回类型为None
(iii)占用较少空间。不创建副本,因为它直接对原始数组排序
(iv)比排序(a)快
- sorted(a)
(i)从旧的列表中创建一个新列表并返回排序后的新列表
(ii)返回类型为列表
(iii)创建原数组的副本,然后进行排序,占用更多空间
(iv)比a.sort()慢
- np.argsort(a)
(i)返回对数组进行排序的下标
(ii)返回类型为numpy数组
(iii)当返回一个新的已排序的下标数组时占用空间
- np.lexsort((b, a))
(i) 使用键序列执行间接排序
(ii) 先按a排序,再按b排序
(iii) 返回int类型ndarray的下标数组,按指定的axis对键进行排序
(iv) 占用空间,返回一个新的索引排序数组。