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 元组(Tuple)操作详解
Mar 11 Python
python实现在目录中查找指定文件的方法
Nov 11 Python
Python爬取读者并制作成PDF
Mar 10 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
Python中的深拷贝和浅拷贝详解
Jun 03 Python
Django之无名分组和有名分组的实现
Apr 16 Python
Python中常用的8种字符串操作方法
May 06 Python
python递归下载文件夹下所有文件
Aug 31 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
什么是python的自省
Jun 21 Python
详解python tkinter 图片插入问题
Sep 03 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
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
PHP中overload与override的区别
2017/02/13 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
Express之get,pos请求参数的获取
2017/05/02 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
浅谈PDF.js使用心得
2018/06/07 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
javascript实现简单搜索功能
2020/03/26 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
Python运算符重载用法实例
2015/05/28 Python
分析用Python脚本关闭文件操作的机制
2015/06/28 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
Python网页解析器使用实例详解
2020/05/30 Python
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
什么时候需要进行强制类型转换
2016/09/03 面试题
个人自我鉴定范文
2013/10/04 职场文书
致接力运动员广播稿
2014/02/17 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
音乐学专业求职信
2014/07/22 职场文书
党委班子对照检查材料
2014/08/19 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
MySQL之DML语言
2021/04/05 MySQL
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python