numpy.argpartition(a, kth, axis=-1, kind='introselect', order=None)

在快排算法中,有一个典型的操作:partition。这个操作指:根据一个数值x,把数组中的元素划分成两半,使得index前面的元素都不大于x,index后面的元素都不小于x。

numpy中的argpartition()函数就是起的这个作用。对于传入的数组a,先用O(n)复杂度求出第k大的数字,然后利用这个第k大的数字将数组a划分成两半。

此函数不对原数组进行操作,它只返回分区之后的下标。一般numpy中以arg开头的函数都是返回下标而不改变原数组。

此函数还有另外两个参数:

  • kind:用于指定partition的算法
  • order:表示排序的key,也就是按哪些字段进行排序

当我们只关心topK时,我们不需要使用np.sort()对数组进行全量排序,np.argpartition()已经够用了。

参考资料

https://docs.scipy.org/doc/numpy/reference/generated/numpy.argpartition.html

转载于:https://www.cnblogs.com/weiyinfu/p/9794551.html

numpy中的argpartition相关推荐

  1. python创建列向量_关于Numpy中的行向量和列向量详解

    关于Numpy中的行向量和列向量详解 行向量 方式1 import numpy as np b=np.array([1,2,3]).reshape((1,-1)) print(b,b.shape) 结 ...

  2. Numpy中矩阵运算

    Numpy中矩阵运算 1 矩阵和向量 1.1 矩阵 矩阵,英文matrix,和array的区别矩阵必须是2维的,但是array可以是多维的. 如图:这个是 3×2 矩阵,即 3 行 2 列,如 m 为 ...

  3. Numpy中数组间运算

    Numpy中数组间运算 1 数组与数的运算     [可以直接进行运算] arr = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]]) arr + ...

  4. Numpy 中的 arange 函数

    1. 概述 Numpy 中 arange() 主要是用于生成数组,具体用法如下: 2. arange() 2.1 语法 numpy.arange(start, stop, step, dtype = ...

  5. python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组、使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank)

    python使用numpy中的flatten函数将2D numpy数组拉平为1Dnumpy数组.使用np.linalg.matrix_rank函数计算2D numpy数组的秩(rank) 目录

  6. python使用numpy中的np.mean函数计算数组的均值、np.var函数计算数据的方差、np.std函数计算数组的标准差

    python使用numpy中的np.mean函数计算数组的均值.np.var函数计算数据的方差.np.std函数计算数组的标准差 目录

  7. Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战

    Python使用numpy中的hstack函数水平堆叠(horizontally stack)数组实战 目录 Python使用numpy中的hstack函数水平堆叠(horizontally stac ...

  8. Python使用numpy中trim_zeros函数去除首尾0值的语法

    Python使用numpy中trim_zeros函数去除首尾0值的语法 目录 Python使用numpy中trim_zeros函数去除首尾0值的语法 #numpy中trim_zeros

  9. numpy中ravel函数、flatten函数的功能及差异

    numpy中ravel函数.flatten函数的功能及差异 >>> import numpy as np >>> a = np.arange(20).reshape ...

最新文章

  1. Nodejs随学随记(杂)
  2. python将小时数换成分钟_如何在Python中将datetime.timedelta转换为分钟、小时?
  3. linux复制目录命令夹,linux复制目录(文件夹)和打包命令
  4. 单元测试——Winfrom
  5. php向后兼容,PHP: 不向后兼容的变更 - Manual
  6. Scrapy学习篇(十)之下载器中间件(Downloader Middleware)
  7. 传统武术家为什么看起来厉害?谈实战的重要性
  8. 使用python解决算法和数据结构--使用栈实现进制转换
  9. activemq linux 100M,Linux下安装 activemq 并指定jdk 1.8(示例代码)
  10. 操作系统面试知识点总结
  11. 前后端RSA加密梳理
  12. pureftpd mysql.conf_Pure-ftpd.conf 配置详解
  13. pyqt5中QGraphicsView弹出菜单
  14. java springboot房地产信息管理系统+实训报告+PPT+功能需求报告
  15. linux录制声卡声音_在deepin上进行声音录制就是这么简单,娱乐工作两不误
  16. 运行matlabR2014a出现找不到指定模块C:MATLAB7\bin\win32\atlas_Athlon.dll怎么办?
  17. 神舟linux装win7教程,神舟笔记本win10系统改win7系统详细图文步骤
  18. 精伦iDR211二代证阅读器技术规格说明书
  19. flutter : Failed to find assets path for “Frameworks/App.framework/flutter_assets“
  20. python数据写入csv会丢失0字头_python csv模块生成CSV文件,0字头数字缺失,汉字乱码...

热门文章

  1. 在 Windows 上安装 TensorFlow(转载)
  2. Power Query获取整理多来源数据
  3. PageHelper.cs(20170223)
  4. c++模板类被继承时他的成员不能被子类看到
  5. java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFSheet.getMergedRegion
  6. 利用thread和sleep生成字符串的伪随机序列
  7. 服务器内容推送技术(转)
  8. CloudStack之nfs
  9. ASP.NET 通用 权限 管理系统
  10. XML SOAP应用简介