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 相关文章推荐
Python3.2中的字符串函数学习总结
Apr 23 Python
Python Requests 基础入门
Apr 07 Python
Python搜索引擎实现原理和方法
Nov 27 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
Django restframework 源码分析之认证详解
Feb 22 Python
django框架实现模板中获取request 的各种信息示例
Jul 01 Python
Python for循环与getitem的关系详解
Jan 02 Python
Python基于Tensor FLow的图像处理操作详解
Jan 15 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
python实现移动木板小游戏
Oct 09 Python
详解python 条件语句和while循环的实例代码
Dec 28 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
Laravel5权限管理方法详解
2016/07/26 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
2013/06/21 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
vue用elementui写form表单时,在label里添加空格操作
2020/08/13 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
python中join()方法介绍
2018/10/11 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
大数据分析用java还是Python
2020/07/06 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
地球上最先进的胡子和头发修剪器:Bevel
2018/01/23 全球购物
交通专业个人自荐信格式
2013/09/23 职场文书
自我评价优秀范文分享
2013/11/30 职场文书
知名企业招聘广告词大全
2014/03/18 职场文书
事假请假条范文
2014/04/11 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
管理提升方案
2014/06/04 职场文书
小学社会实践活动总结
2014/07/03 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
归元寺导游词
2015/02/06 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL
Ruby处理YAML和json数据
2022/04/18 Ruby