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栈类实例分析
Jun 15 Python
利用Python写一个爬妹子的爬虫
Jun 08 Python
对Python 语音识别框架详解
Dec 24 Python
详解python持久化文件读写
Apr 06 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
Python的对象传递与Copy函数使用详解
Dec 26 Python
解决Tensorflow 内存泄露问题
Feb 05 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
基于Python实现股票收益率分析
Apr 02 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程序效率优化的一些策略小结
2010/07/17 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
PHP简单处理表单输入的特殊字符的方法
2016/02/03 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
js自定义事件代码说明
2011/01/31 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
微信小程序实现倒计时60s获取验证码
2020/04/17 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
vue组件数据传递、父子组件数据获取,slot,router路由功能示例
2019/03/19 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
Python中print函数简单使用总结
2019/08/05 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
包装类的功能、种类、常用方法
2012/01/27 面试题
实习生自荐信范文分享
2013/11/27 职场文书
党员志愿者活动方案
2014/08/28 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
小学优秀班主任材料
2014/12/17 职场文书
地心历险记观后感
2015/06/15 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
心理健康教育培训研修感言
2015/11/18 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js
Python中字符串对象语法分享
2022/02/24 Python