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 23 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
python使用jieba实现中文分词去停用词方法示例
Mar 11 Python
python绘制中国大陆人口热力图
Nov 07 Python
Python基于百度云文字识别API
Dec 13 Python
python进行文件对比的方法
Dec 24 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
在自动化中用python实现键盘操作的方法详解
Jul 19 Python
Python实现在Windows平台修改文件属性
Mar 05 Python
基于Python测试程序是否有错误
May 16 Python
django models里数据表插入数据id自增操作
Jul 15 Python
如何利用python检测图片是否包含二维码
Oct 15 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
电脑硬件及电脑配置知识大全
2020/03/17 数码科技
基于文本的访客签到簿
2006/10/09 PHP
php发送post请求的三种方法
2014/02/11 PHP
关于WordPress的SEO优化相关的一些PHP页面脚本技巧
2015/12/10 PHP
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
js中的this关键字详解
2013/09/25 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
js 通用订单代码
2013/12/23 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
JavaScript弹窗基础篇
2016/04/27 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
jQuery实现炫丽的3d旋转星空效果
2018/07/04 jQuery
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
vue+element_ui上传文件,并传递额外参数操作
2020/12/05 Vue.js
python中Genarator函数用法分析
2015/04/08 Python
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
python write无法写入文件的解决方法
2019/01/23 Python
python多线程实现TCP服务端
2019/09/03 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Python爬虫实例——爬取美团美食数据
2020/07/15 Python
python解包用法详解
2021/02/17 Python
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
2012/06/11 面试题
strstr()的简单实现
2013/09/26 面试题
几个常见的消息中间件(MOM)
2014/01/08 面试题
新浪微博实习心得体会
2014/01/27 职场文书
中秋节慰问信
2015/02/15 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android