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比较2个xml内容的方法
May 11 Python
python计算圆周率pi的方法
Jul 11 Python
python实现爬虫统计学校BBS男女比例之数据处理(三)
Dec 31 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
numpy中索引和切片详解
Dec 15 Python
用Python将一个列表分割成小列表的实例讲解
Jul 02 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
Aug 05 Python
Python类和对象的定义与实际应用案例分析
Dec 27 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
Jan 23 Python
python分数表示方式和写法
Jun 26 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
Python itertools.product方法代码实例
Mar 27 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
YII动态模型(动态表名)支持分析
2016/03/29 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
Yii框架安装简明教程
2020/05/15 PHP
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
extjs之去除s.gif的影响
2010/12/25 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
replace()方法查找字符使用示例
2013/10/28 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
django连接oracle时setting 配置方法
2019/08/29 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
html5嵌入内容_动力节点Java学院整理
2017/07/07 HTML / CSS
SQL Server笔试题
2012/01/10 面试题
感恩节红领巾广播稿
2014/02/11 职场文书
联谊活动总结
2014/08/28 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
外贸英文求职信范文
2015/03/19 职场文书
python实现批量移动文件
2021/04/05 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL
详解MySQL的内连接和外连接
2023/05/08 MySQL