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创建日历实例
Aug 21 Python
python进阶教程之循环对象
Aug 30 Python
Python版微信红包分配算法
May 04 Python
Django 跨域请求处理的示例代码
May 02 Python
对Python中gensim库word2vec的使用详解
May 08 Python
Python实现查看系统启动项功能示例
May 10 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 Python
DataFrame.to_excel多次写入不同Sheet的实例
Dec 02 Python
利用Python脚本实现自动刷网课
Feb 03 Python
Pytest单元测试框架如何实现参数化
Sep 05 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 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
图书管理程序(二)
2006/10/09 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码
2007/04/20 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
javascript 实现map集合
2015/04/03 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
vue实现评论列表功能
2019/10/25 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
AngularJs的$http发送POST请求,php无法接收Post的数据问题及解决方案
2020/08/13 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
[31:00]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS iG
2014/05/25 DOTA
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
python django集成cas验证系统
2014/07/14 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
如何使用repr调试python程序
2020/02/28 Python
Michael Kors澳大利亚官网:世界知名的奢侈饰品和成衣设计师
2020/02/13 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
cf收人广告词
2014/03/14 职场文书
初三开学计划书
2014/04/27 职场文书
白酒营销策划方案
2014/08/17 职场文书
2019个人半年工作总结
2019/06/21 职场文书