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之传说中的函数编写条规
Oct 11 Python
Python中time模块与datetime模块在使用中的不同之处
Nov 24 Python
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
Jul 06 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
python实现蒙特卡罗方法教程
Jan 28 Python
python 实现在一张图中绘制一个小的子图方法
Jul 07 Python
python实现两个一维列表合并成一个二维列表
Dec 02 Python
Python列表去重复项的N种方法(实例代码)
May 12 Python
tensorflow转换ckpt为savermodel模型的实现
May 25 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
python 如何用terminal输入参数
May 25 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开发过程中关于继承的使用方法分享
2011/06/17 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
PHP 实现文件压缩解压操作的方法
2019/06/14 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
Laravel 类和接口注入相关的代码
2019/10/15 PHP
浅析js中取绝对值的2种方法
2013/07/09 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
JS遍历Json字符串中键值对先转成JSON对象再遍历
2014/08/15 Javascript
jQuery实用小技巧_输入框文字获取和失去焦点的简单实例
2016/08/25 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
2017/03/21 Javascript
Angular2安装angular-cli
2017/05/21 Javascript
vue-cli 目录结构详细讲解总结
2019/01/15 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
Python数据操作方法封装类实例
2017/06/23 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
python enumerate内置函数用法总结
2020/01/07 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
python实现马丁策略的实例详解
2021/01/15 Python
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
RUIFIER官网:英国奢侈高级珠宝品牌
2020/06/12 全球购物
金鑫耀Java笔试题
2014/09/06 面试题
酒店办公室文员岗位职责
2013/12/18 职场文书
致裁判员加油稿
2014/02/08 职场文书
端午节活动策划方案
2014/03/09 职场文书
公司庆典欢迎词
2015/01/26 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
入团申请书格式
2019/06/20 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL