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 相关文章推荐
Tensorflow简单验证码识别应用
May 25 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
Python多进程写入同一文件的方法
Jan 14 Python
Python流程控制 if else实现解析
Sep 02 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
python构造IP报文实例
May 05 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
Python字符串查找基本操作代码案例
Oct 27 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通过header实现文本文件下载的代码
2010/08/08 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
Js中sort()方法的用法
2006/11/04 Javascript
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
2011/07/04 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
nodejs中转换URL字符串与查询字符串详解
2014/11/26 NodeJs
jquery Validation表单验证使用详解
2020/09/12 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
python之从文件读取数据到list的实例讲解
2018/04/19 Python
python3实现windows下同名进程监控
2018/06/21 Python
python实现一组典型数据格式转换
2018/12/15 Python
python读取各种文件数据方法解析
2018/12/29 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
Python偏函数实现原理及应用
2020/11/20 Python
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
车辆维修工自我评价怎么写
2013/09/20 职场文书
教师实习期自我鉴定
2013/10/06 职场文书
小露珠教学反思
2014/04/30 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
舞出我人生观后感
2015/06/16 职场文书