Python实现二维数组按照某行或列排序的方法【numpy lexsort】


Posted in Python onSeptember 22, 2017

本文实例讲述了Python实现二维数组按照某行或列排序的方法。分享给大家供大家参考,具体如下:

lexsort支持对数组按指定行或列的顺序排序;是间接排序,lexsort不修改原数组,返回索引。

(对应lexsort 一维数组的是argsort a.argsort()这么使用就可以;argsort也不修改原数组, 返回索引)

默认按最后一行元素有小到大排序, 返回最后一行元素排序后索引所在位置。

设数组a, 返回的索引ind,ind返回的是一维数组

对于一维数组, a[ind]就是排序后的数组。

对于二维数组下面会详细举例。

import numpy as np
>>> a
array([[ 2, 7, 4, 2],
    [35, 9, 1, 5],
    [22, 12, 3, 2]])

按最后一列顺序排序

>>> a[np.lexsort(a.T)]
array([[22, 12, 3, 2],
    [ 2, 7, 4, 2],
    [35, 9, 1, 5]])

按最后一列逆序排序

>>>a[np.lexsort(-a.T)]
array([[35, 9, 1, 5],
    [ 2, 7, 4, 2],
    [22, 12, 3, 2]])

按第一列顺序排序

>>> a[np.lexsort(a[:,::-1].T)]
array([[ 2, 7, 4, 2],
    [22, 12, 3, 2],
    [35, 9, 1, 5]])

按最后一行顺序排序

>>> a.T[np.lexsort(a)].T
array([[ 2, 4, 7, 2],
    [ 5, 1, 9, 35],
    [ 2, 3, 12, 22]])

按第一行顺序排序

>>> a.T[np.lexsort(a[::-1,:])].T
array([[ 2, 2, 4, 7],
    [ 5, 35, 1, 9],
    [ 2, 22, 3, 12]])

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实用日期时间处理方法汇总
May 09 Python
Python使用装饰器模拟用户登陆验证功能示例
Aug 24 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
Django认证系统实现的web页面实现代码
Aug 12 Python
python2.7实现复制大量文件及文件夹资料
Aug 31 Python
python中dict()的高级用法实现
Nov 13 Python
python cv2截取不规则区域图片实例
Dec 21 Python
python 消费 kafka 数据教程
Dec 21 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
Python import模块的缓存问题解决方案
Jun 02 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 #Python
Python实现字符串与数组相互转换功能示例
Sep 22 #Python
Python中用post、get方式提交数据的方法示例
Sep 22 #Python
利用python操作SQLite数据库及文件操作详解
Sep 22 #Python
Python正则表达式知识汇总
Sep 22 #Python
python3实现全角和半角字符转换的方法示例
Sep 21 #Python
python实现二分查找算法
Sep 21 #Python
You might like
往光标所在位置插入值的js代码
2013/09/22 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
Node.js中的事件驱动编程详解
2014/08/16 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
分析并输出Python代码依赖的库的实现代码
2015/08/09 Python
Python实现的排列组合计算操作示例
2017/10/13 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
django框架使用方法详解
2019/07/18 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
python中必要的名词解释
2019/11/20 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
HTML5的语法变化介绍
2013/08/13 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
干部现实表现材料
2014/02/13 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
2014年勤工助学工作总结
2014/11/24 职场文书
租车协议书
2015/01/27 职场文书
试用期辞职信范文
2015/03/02 职场文书
刑事附带民事上诉状
2015/05/23 职场文书
少先队入队仪式主持词
2015/07/04 职场文书
Feign调用传输文件异常的解决
2021/06/24 Java/Android
利用 SQL Server 过滤索引提高查询语句的性能分析
2021/07/15 SQL Server
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫