在numpy的某个地方是否有插入排序?我的数组需要一个argsort,但内置的快速,合并和堆不适合几乎排序的数组。
答案 0 :(得分:3)
Timsort已实现,现在可用于代替mergesort。 [...] Timsort的功能提高了对已排序或几乎排序的数据的性能,并且对随机数据的性能类似于mergesort。
截至撰写本文时,NumPy 1.17.0尚未发布,但在发布NumPy 1.17.0时,您可以通过在{{1中指定kind='stable'
或kind='mergesort'
来选择Timsort }}通话:
sort
这满足了您要使用插入排序的“快速处理几乎排序的数据”角色,同时还利用了输入中的其他顺序,并且比插入排序具有更好的最坏情况行为。
答案 1 :(得分:1)
如何将numpy.searchsorted
与numpy.insert
结合使用:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.searchsorted.html
http://docs.scipy.org/doc/numpy/reference/generated/numpy.insert.html