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的绘图工具matplotlib使用实例
Jul 03 Python
python将ip地址转换成整数的方法
Mar 17 Python
利用Python绘制数据的瀑布图的教程
Apr 07 Python
python实现telnet客户端的方法
Apr 15 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
Python 通过pip安装Django详细介绍
Apr 28 Python
Python算法输出1-9数组形成的结果为100的所有运算式
Nov 03 Python
python list转矩阵的实例讲解
Aug 04 Python
使用Python实现一个栈判断括号是否平衡
Aug 23 Python
python多线程抽象编程模型详解
Mar 20 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
python3.8与pyinstaller冲突问题的快速解决方法
Jan 16 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
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
ThinkPHP验证码使用简明教程
2014/03/05 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
js简单抽奖代码
2015/01/16 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
Vue.js实现微信过渡动画左右切换效果
2017/06/13 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
tensorflow 限制显存大小的实现
2020/02/03 Python
Python字符串格式化f-string多种功能实现
2020/05/07 Python
Python reques接口测试框架实现代码
2020/07/28 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
Hotels.com印度:酒店预订
2019/05/11 全球购物
预备党员思想汇报范文
2014/01/11 职场文书
物控部经理职务说明书
2014/02/25 职场文书
海飞丝的广告词
2014/03/20 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
信息简报范文
2015/07/21 职场文书
因个人工作失误检讨书
2019/06/21 职场文书