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中import机制详解
Nov 14 Python
基于Pandas读取csv文件Error的总结
Jun 15 Python
python tkinter实现彩球碰撞屏保
Jul 30 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 Python
TensorBoard 计算图的可视化实现
Feb 15 Python
tensorflow 实现数据类型转换
Feb 17 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
如何表示python中的相对路径
Jul 08 Python
基于python实现计算两组数据P值
Jul 10 Python
Python Charles抓包配置实现流程图解
Sep 29 Python
python pip如何手动安装二进制包
Sep 30 Python
Python3.9新特性详解
Oct 10 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
JS与PHP向函数传递可变参数的区别实例代码
2011/05/18 PHP
php的hash算法介绍
2014/02/13 PHP
php实现学生管理系统
2020/03/21 PHP
jquery中获取元素的几种方式小结
2011/07/05 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
使用requestAnimationFrame实现js动画性能好
2015/08/06 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
electron + vue项目实现打印小票功能及实现代码
2018/11/25 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
js数组的基本使用总结
2021/01/18 Javascript
Django框架下在视图中使用模版的方法
2015/07/16 Python
详解python开发环境搭建
2016/12/16 Python
Python实现列表删除重复元素的三种常用方法分析
2017/11/24 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
python能自学吗
2020/06/18 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
如何向scrapy中的spider传递参数的几种方法
2020/11/18 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
《雨霖铃》教学反思
2014/02/22 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
教师个人培训总结
2015/02/11 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
检讨书怎么写?
2019/06/21 职场文书
Python如何配置环境变量详解
2021/05/18 Python
Nginx的基本概念和原理
2022/03/21 Servers