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中装饰器的用法
Apr 27 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
对django xadmin自定义菜单的实例详解
Jan 03 Python
PyCharm在新窗口打开项目的方法
Jan 17 Python
python/Matplotlib绘制复变函数图像教程
Nov 21 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
3分钟看懂Python后端必须知道的Django的信号机制
Jul 26 Python
python字典按照value排序方法
Dec 28 Python
五分钟学会怎么用python做一个简单的贪吃蛇
Jan 12 Python
pytorch实现线性回归以及多元回归
Apr 11 Python
用 Python 元类的特性实现 ORM 框架
May 19 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/01 无线电
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php中的strpos使用示例
2014/02/27 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
2019/10/25 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
防止浏览器记住用户名及密码的简单实用方法
2013/04/22 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
vue微信分享 vue实现当前页面分享其他页面
2017/12/02 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
vue.js中ref和$refs的使用及示例讲解
2019/08/14 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
2019/08/15 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
python 正则式使用心得
2009/05/07 Python
urllib2自定义opener详解
2014/02/07 Python
python实现随机漫步算法
2018/08/27 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
python 如何设置守护进程
2020/10/29 Python
Theo + George官方网站:都柏林时尚品牌
2019/04/08 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
英国复古服装购物网站:Collectif
2019/10/30 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
房屋过户委托书范本
2014/10/07 职场文书
工伤事故赔偿协议书
2014/10/27 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
浅析Python实现DFA算法
2021/06/26 Python
java设计模式--三种工厂模式详解
2021/07/21 Java/Android