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求解水仙花数的方法
May 11 Python
在Python操作时间和日期之asctime()方法的使用
May 22 Python
详解设计模式中的工厂方法模式在Python程序中的运用
Mar 02 Python
python处理xml文件的方法小结
May 02 Python
python用户管理系统
Mar 13 Python
Python基础教程之内置函数locals()和globals()用法分析
Mar 16 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
Python实现的爬取网易动态评论操作示例
Jun 06 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
OpenCV Python实现图像指定区域裁剪
Mar 12 Python
如何在Anaconda中打开python自带idle
Sep 21 Python
python中scipy.stats产生随机数实例讲解
Feb 19 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中使用redis
2013/11/04 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
PHP7常量数组用法分析
2016/09/26 PHP
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
2016/12/23 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
2018/04/22 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
vue简单练习 桌面时钟的实现代码实例
2019/09/19 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
pytyon 带有重复的全排列
2013/08/13 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
如何开发安全的AJAX应用
2014/03/26 面试题
七年级政治教学反思
2014/02/03 职场文书
保密普查工作实施方案
2014/02/25 职场文书
七一建党节演讲稿
2014/09/11 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
横空出世观后感
2015/06/09 职场文书
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python