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 MySQLdb Linux下安装笔记
May 09 Python
对于Python装饰器使用的一些建议
Jun 03 Python
简单解决Python文件中文编码问题
Nov 22 Python
python中PIL安装简单教程
Apr 21 Python
Python字符串的全排列算法实例详解
Jan 07 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
python每天定时运行某程序代码
Aug 16 Python
Django实现基于类的分页功能
Oct 31 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
Python根据字符串调用函数过程解析
Nov 05 Python
python 第三方库paramiko的常用方式
Feb 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
用php过滤危险html代码的函数
2008/07/22 PHP
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
解析php中memcache的应用
2013/06/18 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
使用js操作css实现js改变背景图片示例
2014/03/10 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
jQuery实现带遮罩层效果的blockUI弹出层示例【附demo源码下载】
2016/09/14 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
关于js陀螺仪的理解分析
2019/04/11 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
Python操作CouchDB数据库简单示例
2015/03/10 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
python执行等待程序直到第二天零点的方法
2015/04/23 Python
python操作ie登陆土豆网的方法
2015/05/09 Python
pandas 获取季度,月度,年度首尾日期的方法
2018/04/11 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
解决Pandas的DataFrame输出截断和省略的问题
2019/02/08 Python
iPython pylab模式启动方式
2020/04/24 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
军训考核自我鉴定
2014/02/13 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
基层党员对照检查材料
2014/08/25 职场文书
小学体育队列队形教学反思
2016/02/16 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python