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中使用mongoengine操作MongoDB教程
Apr 24 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
小米5s微信跳一跳小程序python源码
Jan 08 Python
PyQt5每天必学之日历控件QCalendarWidget
Apr 19 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
Nov 21 Python
关于Python核心框架tornado的异步协程的2种方法详解
Aug 28 Python
Django实现前台上传并显示图片功能
May 29 Python
Python -m参数原理及使用方法解析
Aug 21 Python
Python pandas求方差和标准差的方法实例
Aug 04 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之第二天
2006/10/09 PHP
php开发工具之vs2005图解
2008/01/12 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
js调用图片隐藏&显示实现代码
2013/09/13 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
javascript 中Cookie读、写与删除操作
2017/03/29 Javascript
详解AngularJS2 Http服务
2017/06/26 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
如何在django中实现分页功能
2020/04/22 Python
python中entry用法讲解
2020/12/04 Python
世界第一冲浪品牌:O’Neill
2016/08/30 全球购物
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
Javascript如何发送一个Ajax请求
2015/01/26 面试题
掌上明珠Java程序员面试总结
2016/02/23 面试题
电气自动化大学生求职信
2013/10/16 职场文书
思想品德课教学反思
2014/02/10 职场文书
土建施工员岗位职责
2015/04/11 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
2016年最美孝心少年事迹材料
2016/02/26 职场文书
2019通用版新员工入职培训方案!
2019/07/11 职场文书
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB
Python  lambda匿名函数和三元运算符
2022/04/19 Python
CentOS7 minimal 最小化安装网络设置过程
2022/12/24 Servers