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标准库内置函数complex介绍
Nov 25 Python
Python压缩和解压缩zip文件
Feb 14 Python
教大家使用Python SqlAlchemy
Feb 12 Python
简单谈谈Python中函数的可变参数
Sep 02 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
Mar 12 Python
python中通过预先编译正则表达式提高效率
Sep 25 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
Python3列表List入门知识附实例
Feb 09 Python
python实现最速下降法
Mar 24 Python
Python 中如何写注释
Aug 28 Python
解决pytorch-gpu 安装失败的记录
May 24 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-Java-Bridge使用笔记
2014/09/22 PHP
微信自定义分享php代码分析
2016/11/24 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
几个比较实用的JavaScript 测试及效验工具
2010/04/18 Javascript
用XMLDOM和ADODB.Stream实现base64编码解码实现代码
2010/11/28 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
Python Paramiko模块的安装与使用详解
2016/11/18 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
python实现石头剪刀布程序
2021/01/20 Python
python 实现矩阵填充0的例子
2019/11/29 Python
python3爬取torrent种子链接实例
2020/01/16 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
医药代表个人求职信范本
2013/12/19 职场文书
户外亲子活动策划方案
2014/02/07 职场文书
初中军训感想300字
2014/03/05 职场文书
毕业生面试求职信
2014/06/23 职场文书
教师工作总结范文2014
2014/11/10 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
宝宝满月宴答谢词
2015/09/30 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL
Linux在两个服务器直接传文件的操作方法
2022/08/05 Servers