Python实现二维数组按照某行或列排序的方法【numpy lexsort】
2017-09-22 11:41
1761 查看
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字符串操作技巧汇总》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python数据结构与算法教程》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- Python实现二维数组按照某行或列排序的方法
- numpy中实现二维数组按照某列、某行排序的方法
- 实现对多维数组按照某个键值排序的两种方法(array_multisort和array_sort)
- python实现字典按value排序,以及按照key排序的实现方法
- python 按二维数组的某行或列排序 (numpy lexsort)
- Python实现字典按照value进行排序的方法分析
- 题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。(Python实现)
- 开辟一个二维数组,有10*8个元素,用随机数填充,按照下面的方法用函数实现查找一个数是否存在
- Java集合对象的排序使用Collection.sort方法,先实现Comparable接口
- 用Collections.sort()实现按照首字母排序
- 利用数组的Sort方法实现表格点击排序
- 算法第三次作业(1. 排序。对文件 largeW.txt(下载链接)中的数据,编程实现冒泡排序(方法名:bubbleSort) 与 归并排序(mergeSort),把排序后的结果分别保存到largeW
- 使用sort()方法实现数组排序
- java Collections.sort()实现List排序的默认方法和自定义方法
- python让图片按照exif信息里的创建时间进行排序的方法
- 开辟一个二维数组,有10*8个元素,用随机数填充,按照下面的方法用函数实现查找一个数是否存在
- 开辟一个二维数组,有10*8个元素,用随机数填充,按照下面的方法用函数实现查找一个数是否存在
- Python最大堆排序实现方法
- python中列表排序sort()方法或者内建函数sorted()
- python实现忽略大小写对字符串列表排序的方法