numpy partition argpartition

平时用惯了全排序np.sort,复杂度在O(n\log n)O(n^2)之间。如果待排序的数组特别大的话,时间开销不小。但通常特别大的数组排序不需要进行全排,可能仅仅需要取Top K。此时就可以使用部分排序,比如numpy.partitionnumpy.argpartition

partition函数的功能如下:给定一个array,将其中的元素重新整理使得第k位的元素刚好是全排序第k位的元素。所有比第k位元素小的元素都被放在它前面,所有比第k位元素大的元素都放在它后面。也就是说,这个第k位元素就将整个数组分成了两个部分,前面比它小,后面比它大。但是每个部分内部的元素并没有进行排序。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容