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实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
Python base64编码解码实例
Jun 21 Python
Python continue继续循环用法总结
Jun 10 Python
python中dict使用方法详解
Jul 17 Python
python之生产者消费者模型实现详解
Jul 27 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
python socket 聊天室实例代码详解
Nov 14 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 Python
python如何实现图片压缩
Sep 11 Python
Python中的程序流程控制语句
Feb 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
通俗易懂的php防注入代码
2010/04/07 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
js查找节点的方法小结
2015/01/13 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
教你安装python Django(图文)
2013/11/04 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
Python中列表与元组的乘法操作示例
2018/02/10 Python
Python 通过requests实现腾讯新闻抓取爬虫的方法
2019/02/22 Python
Django框架组成结构、基本概念与文件功能分析
2019/07/30 Python
Python中random模块常用方法的使用教程
2020/10/04 Python
Crocs美国官方网站:卡骆驰洞洞鞋
2017/08/04 全球购物
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
高中毕业生自我鉴定
2013/11/03 职场文书
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
小学生操行评语大全
2014/04/22 职场文书
消防安全承诺书
2014/05/22 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS