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之编写类之四再论继承
Oct 11 Python
python使用正则表达式分析网页中的图片并进行替换的方法
Mar 26 Python
Python OS模块常用函数说明
May 23 Python
python 根据时间来生成唯一的字符串方法
Jan 14 Python
python matplotlib库直方图绘制详解
Aug 10 Python
python mqtt 客户端的实现代码实例
Sep 25 Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
Python+pyftpdlib实现局域网文件互传
Aug 24 Python
搭建pypi私有仓库实现过程详解
Nov 25 Python
浅谈Python 中的复数问题
May 19 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 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批量生成随机用户名
2008/07/10 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
js版本A*寻路算法
2006/12/22 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
2018/11/13 Javascript
Angular(5.2->6.1)升级小结
2018/12/27 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
jQuery实现增删改查
2020/12/22 jQuery
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
一个检测OpenSSL心脏出血漏洞的Python脚本分享
2014/04/10 Python
Python的time模块中的常用方法整理
2015/06/18 Python
django实现前后台交互实例
2017/08/07 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
amazeui 验证按钮扩展的实现
2020/08/21 HTML / CSS
联想墨西哥官方网站:Lenovo墨西哥
2016/08/17 全球购物
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
斯洛伐克香水和化妆品购物网站:Parfemy-Elnino.sk
2020/01/28 全球购物
给领导的致歉信范文
2014/01/13 职场文书
物业品质提升方案
2014/06/08 职场文书
党的群众路线教育实践活动个人对照检查材料(企业)
2014/11/05 职场文书
2014个人年度工作总结
2014/12/15 职场文书
给朋友的道歉短信
2015/05/12 职场文书
干部培训简讯
2015/07/20 职场文书
Mysql排序的特性详情
2021/11/01 MySQL