python 实现多维数组(array)排序


Posted in Python onFebruary 28, 2020

关于多维数组如何复合排序

如数组:

>>> import numpy as np
>>> data = np.array([[2,2,5],[2,1,3],[1,2,3],[3,1,4]])
>>>> data
array([[2, 2, 5],
  [2, 1, 3],
  [1, 2, 3],
  [3, 1, 4]])

将数组先按照第一列升序,第二列升序,第三列升序的方式排序:

>>> idex=np.lexsort([data[:,2], data[:,1], data[:,0]])
>>> sorted_data = data[idex, :]
>>> sorted_data
array([[1, 2, 3],
  [2, 1, 3],
  [2, 2, 5],
  [3, 1, 4]])

然后将数组按照第一列降序,第二列升序,第三列升序的方式排序:

>>> idex=np.lexsort([data[:,2], data[:,1], -1*data[:,0]])
>>> sorted_data = data[idex, :]
>>> sorted_data
array([[3, 1, 4],
  [2, 1, 3],
  [2, 2, 5],
  [1, 2, 3]])

补充拓展:python:对多维数组的降序排列

在python中,遗憾的一点是没有对多维数组按照指定维度进行降序排列的方法。

但是,有对一维数组的降序排列,这就足够了!

# Author: Right.Q
# 实现多维矩阵的逆序排列
 
def descend_sort(array):
 '''对三维数组倒序排列'''
 [height, width, channel] = array.shape
 sortArray = np.zeros([height, width, channel])
 for h in range(height):
  for w in range(width):
   sortArray[h, w, :] = sorted(array[h, w, :], reverse=True)
 
 return sortArray

形参是指定的三维数组,如果更多维的话,自动识别维度即可。

以上这篇python 实现多维数组(array)排序就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
Python中获取对象信息的方法
Apr 27 Python
在Python的Django框架中编写编译函数
Jul 20 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
Jun 16 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
Python3安装pip工具的详细步骤
Oct 14 Python
基于python实现学生信息管理系统
Nov 22 Python
Python中bisect的使用方法
Dec 31 Python
python支持多继承吗
Jun 19 Python
cookies应对python反爬虫知识点详解
Nov 25 Python
python对数组进行排序,并输出排序后对应的索引值方式
Feb 28 #Python
Python使用Socket实现简单聊天程序
Feb 28 #Python
在python3中使用shuffle函数要注意的地方
Feb 28 #Python
Python对称的二叉树多种思路实现方法
Feb 28 #Python
pycharm如何实现跨目录调用文件
Feb 28 #Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 #Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 #Python
You might like
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
php判断目录存在的简单方法
2019/09/26 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
2009/12/09 Javascript
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
用户管理的设计_jquery的ajax实现二级联动效果
2017/07/13 jQuery
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
angular6的table组件开发的实现示例
2018/12/26 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
Python中的jquery PyQuery库使用小结
2014/05/13 Python
Python 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
2017/03/20 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
机械制造毕业生求职信
2014/03/03 职场文书
道路施工安全责任书
2014/07/24 职场文书
特岗教师个人总结
2015/02/10 职场文书
初三毕业感言
2015/07/31 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
MySQL学习之基础命令实操总结
2022/03/19 MySQL
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android