numpy排序(sort、argsort、lexsort、partition、sorted)
1.sort
numpy.sort(a, axis=1, kind='quicksort', order=None)
- a :所需排序的数组
- axis:数组排序时的基准,axis=0按行排列;axis=1按列排列
- kind:数组排序时使用的方法,其中:
- kind=′quicksort′为快排;kind=′mergesort′为混排;kind=′heapsort′为堆排;
- order:一个字符串或列表,可以设置按照某个属性进行排序


2.argsort
numpy.argsort(a, axis=1, kind='quicksort', order=None)
- a :所需排序的数组
- axis:数组排序时的基准,axis=0按行排列;axis=1按列排列
- kind:数组排序时使用的方法,其中:
- kind=′quicksort′为快排;kind=′mergesort′为混排;kind=′heapsort′为堆排;
- order:一个字符串或列表,可以设置按照某个属性进行排序

3.lexsort 排字典序函数
numpy.argsort(a, axis=-1, kind='quicksort', order=None)
b在前,a在后,即是先按照a的元素进行比较
如a中的最小值为两个1,其索引分别为0,2,再计较b中相应索引上的值,即9,0
对应的最小应是:1,0,而其对应的索引为2,所以排序后返回的结果第一个值为索引2
下一个最小应是:1,9,而其对应的索引为0,所以排序后返回的结果第一个值为索引0
以此类推...
下例lexsort以最后一行开始,首先对a进行排序,可以发现a中有几个元素是相同的,有着相同元素的按照索引小的在前,
因此a排序后的索引数组为[ 0, 2, 4, 3, 5, 6, 1 ]。然后我们对b进行排序,排序结果为[ 2, 4, 6, 5, 3, 1, 0 ],
最后的排序结果为[ 2, 0, 4, 6, 5, 3, 1 ],我们知道a中索引0和2数值相等,但是在b中索引为2的元素比索引为0的元素小,
所以最终的比较结果为第二列比第0列小,其他列同理。其实上面相当于是对 19,54,10,44,30,42,41进行排序,
带下划线的元素是主关键字,主关键字来自a(最后一行),当主关键字比较不出结果,则参考次关键字(b对应行)的比较结果得出最后的排序结果
另外对有序数组中,我们可以用searchsorted找到某个元素合适的位置。这里不一定会找到查找成功,
但是如果待查找元素存在则一定在那个的位置上。因此searchsorted方法可以轻松找到某一个区间的临界点的索引。
(注意如果元素存在且不止一个,则默认返回最左边的索引)


4.numpy.searchsorted
- numpy.searchsorted(a, v, side='left', sorter=None)
- a:所需排序的数组
- v:待查询索引的元素值
- side:查询索引时的方向,其中:kind=′left′为从左至右;kind=′right′为从右至左
- sorder:一个字符串或列表,可以设置按照某个属性进行排序

5.numpy.partition(与此对应的还有argpartition)

6.sorted()

numpy排序(sort、argsort、lexsort、partition、sorted)的更多相关文章
- python 排序 sort和sorted
当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建方法sort() 可以直接对列表进行排序 用法: list. ...
- Python 排序---sort与sorted学习
当我们从数据库中获取一写数据后,一般对于列表的排序是经常会遇到的问题,今天总结一下python对于列表list排序的常用方法: 第一种:内建方法sort() 可以直接对列表进行排序 用法: list. ...
- python之排序(sort/sorted)
大家都知道,python排序有内置的排序函数 sort() 和 高阶函数sorted() .但是它们有什么区别呢? 让我们先从这个函数的定义说起: sorted():该函数第一个参数iterable为 ...
- NumPy 排序、条件刷选函数
NumPy 排序.条件刷选函数 NumPy 提供了多种排序的方法. 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性. 下表显示了三种排序算法 ...
- NumPy排序、搜索和计数函数
NumPy - 排序.搜索和计数函数 NumPy中提供了各种排序相关功能. 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性. 下表显示了三种 ...
- Numpy 排序和使用索引
# 导包 import numpy as np 排序 .sort() x = np.arange(16) # array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...
- NumPy 排序、查找、计数
章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基于数值区间创建数组 NumPy 数组切 ...
- 转:详细解说 STL 排序(Sort)
详细解说 STL 排序(Sort) 详细解说 STL 排序(Sort) 作者Winter 详细解说 STL 排序(Sort) 0 前言: STL,为什么你必须掌握 1 STL提供的Sort 算法 1. ...
- 详细解说 STL 排序(Sort)(转)
作者Winter 详细解说 STL 排序(Sort) 0 前言: STL,为什么你必须掌握 1 STL提供的Sort 算法 1.1 所有sort算法介绍 1.2 sort 中的比较函数 1.3 sor ...
随机推荐
- Sencha Cmd 5.0.1.231 是坑爹货
Sencha Cmd 5.0.1.231相比之前的版本有了很大的变动,存在很多坑爹之处,个人建议不要升级到这个版本,如果已经升级了的就卸载了还原到以前的版本吧. 历史版本下载地址:http://cdn ...
- 【读书笔记】socket函数
socket函数 简介 应用程序调用socket函数来创建一个能够进行网络通信的套接字. 1 2 3 4 5 /* 头文件 */ #include <sys/types.h> #inclu ...
- 【Servlet】关于RequestDispatcher的原理
RequestDispatcher简介 RequestDispatcher 代表请求的派发者.它有2个动作:forward 和 include .客户端对于任何一个请求,可以根据业务逻辑需要,选择不同 ...
- [VS]VS2010如何使用Visual Studio Online在线服务管理团队资源(在线TFS)
前言 Visual Studio Online,也就是以前的Team Foundation Service,从名字可以看出这是一个团队资源管理服务.在微软的云基础架构中运行,无需安装或配置任何服务器, ...
- Unity3D笔记 愤怒的小鸟<一>场景切换
新建3个场景,场景1 Start 十秒后自动切换到场景2 Splash,场景2在二秒后自动切换到场景3 Selection 一.场景一Start 二.场景2 Splash 三.场景3 Selectio ...
- PHP将富文本内容去除各类样式图片等只保留txt文本内容(作用于SEO的description)
1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...
- Mac - MySQL初始密码忘记重置MySQL root密码
在什么情况下,需要重置root密码呢?那就是我们忘记了.还有一种比较坑的,那就是笔者的这种情况.按照正常的情况下,MySQL安装完之后,会弹出一个对话框,显示着一个临时的root密码,但无论笔者如何重 ...
- vue--自定义指令进行验证(1)
实例代码: <template> <div id="app" class="app"> <h3>{{msg}}</h3 ...
- ajax无刷新获取天气信息
浏览器由于安全方面的问题,禁止ajax跨域请求其他网站的数据,但是可以再本地的服务器上获取其他服务器的信息,在通过ajax请求本地服务来实现: <?php header("conten ...
- 【转】单片机中volatile定义的作用详解
传送门:http://www.eeworld.com.cn/mcu/2011/0411/article_3928.html 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译 ...