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学习教程之使用py2exe打包
Sep 24 Python
django框架自定义用户表操作示例
Aug 07 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
python打造爬虫代理池过程解析
Aug 15 Python
Python随机数函数代码实例解析
Feb 09 Python
python实现银行实战系统
Feb 26 Python
Python控制台实现交互式环境执行
Jun 09 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
python 如何设置守护进程
Oct 29 Python
Python实现Telnet自动连接检测密码的示例
Apr 16 Python
如何使用python包中的sched事件调度器
Apr 30 Python
python通过新建环境安装tfx的问题
May 20 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
Destoon模板制作简明教程
2014/06/20 PHP
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
捕获关闭窗口的脚本
2009/01/10 Javascript
Prototype Hash对象 学习
2009/07/19 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
基于vue+canvas的excel-like组件实例详解
2017/11/28 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
高效使用Python字典的清单
2018/04/04 Python
Django中create和save方法的不同
2019/08/13 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
Django values()和value_list()的使用
2020/03/31 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
测试驱动开发的主要步骤是什么
2014/12/10 面试题
自我评价200字分享
2013/12/17 职场文书
入党转预备思想汇报
2014/01/07 职场文书
20年同学聚会感言
2014/02/03 职场文书
开业庆典主持词
2014/03/21 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
人事行政经理岗位职责
2014/06/18 职场文书
医德医风个人总结
2015/02/28 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python
【海涛七七解说】DCG第二周:DK VS 天禄
2022/04/01 DOTA