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 相关文章推荐
python正则表达式修复网站文章字体不统一的解决方法
Feb 21 Python
Python聊天室实例程序分享
Jan 05 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
使用Python中的reduce()函数求积的实例
Jun 28 Python
Python修改列表值问题解决方案
Mar 06 Python
jupyter notebook 的工作空间设置操作
Apr 20 Python
python用Configobj模块读取配置文件
Sep 26 Python
关于python类SortedList详解
Sep 04 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算开始时间到过期时间的相隔的天数
2011/01/12 PHP
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
arguments对象
2006/11/20 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
Javascript 检测、添加、移除样式(className)函数代码
2009/09/08 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
详解JavaScript的回调函数
2015/11/20 Javascript
jQuery插件实现文字无缝向上滚动效果代码
2016/02/25 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
Python的高阶函数用法实例分析
2019/04/11 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
python3实现elasticsearch批量更新数据
2019/12/03 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
python访问hdfs的操作
2020/06/06 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
什么是lambda函数
2013/09/17 面试题
高级Java程序员面试题
2016/06/23 面试题
八年级语文教学反思
2014/02/11 职场文书
环境工程专业自荐信范文
2014/03/18 职场文书
母亲去世追悼词
2015/06/23 职场文书
医德医风学习心得体会
2016/01/25 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS