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 Django做网页
Nov 04 Python
python格式化字符串实例总结
Sep 28 Python
Python实现的桶排序算法示例
Nov 29 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
pandas 选择某几列的方法
Jul 03 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
opencv-python 提取sift特征并匹配的实例
Dec 09 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
django下创建多个app并设置urls方法
Aug 02 Python
Python连接mysql数据库及简单增删改查操作示例代码
Aug 03 Python
Python钉钉报警及Zabbix集成钉钉报警的示例代码
Aug 17 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
谈一谈收音机的高放电路
2021/03/02 无线电
PHP form 表单传参明细研究
2009/07/17 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
jquery禁用右键示例
2014/04/28 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
2017/08/10 jQuery
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
2019/09/11 Python
python操作redis数据库的三种方法
2020/09/10 Python
Python grpc超时机制代码示例
2020/09/14 Python
详解canvas在圆弧周围绘制文本的两种写法
2018/05/22 HTML / CSS
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
施工资料员的岗位职责
2013/12/22 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
新闻传媒系求职信范文
2014/04/19 职场文书
读书月活动方案
2014/05/22 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android