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多线程编程(四):使用Lock互斥锁
Apr 05 Python
名片管理系统python版
Jan 11 Python
Python温度转换实例分析
Jan 17 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
python 自动去除空行的实例
Jul 24 Python
Python常见内置高效率函数用法示例
Jul 31 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
Python使用ElementTree美化XML格式的操作
Mar 06 Python
Python tornado上传文件的功能
Mar 26 Python
为什么python比较流行
Jun 19 Python
Python 数据可视化神器Pyecharts绘制图像练习
Feb 28 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生成静态页面详解
2006/12/05 PHP
php 动态添加记录
2009/03/10 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
深入了解PHP中的Array数组和foreach
2016/11/06 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
TP5框架使用QueryList采集框架爬小说操作示例
2020/03/26 PHP
js操作CheckBoxList实现全选/反选(在客服端完成)
2013/02/02 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
python判断字符串是否是json格式方法分享
2017/11/07 Python
python使用递归的方式建立二叉树
2019/07/03 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
python安装scipy的步骤解析
2019/09/28 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
编写html5时调试发现脚本php等网页js、css等失效
2013/12/31 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
Roots加拿大官网:加拿大休闲服饰品牌
2016/10/24 全球购物
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
Antler英国官网:购买安特丽行李箱、拉杆箱
2019/08/25 全球购物
英文请假条
2014/04/11 职场文书
机票销售员态度不好检讨书
2014/09/27 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
美丽人生观后感
2015/06/03 职场文书
学习党章心得体会2016
2016/01/15 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
Redis入门教程详解
2021/08/30 Redis
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers