python 实现多维数组(array)排序

 更新时间:2020年02月28日 10:34:37   作者:caoxuemei12  
今天小编就为大家分享一篇python 实现多维数组(array)排序,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

关于多维数组如何复合排序

如数组:

>>> 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的四种单例模式实现方式

    单例模式是一种设计模式,用于确保一个类只有一个实例,并提供全局访问点以获取该实例,这篇文章主要介绍了Python的四种单例模式实现方式,需要的朋友可以参考下
    2024-04-04
  • python中property和setter装饰器用法

    python中property和setter装饰器用法

    今天小编就为大家分享一篇python中property和setter装饰器用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • python readlines函数示例解析

    python readlines函数示例解析

    readlines()是Python文件对象的一个方法,用于读取文件中的所有行并将它们作为一个字符串列表返回,这篇文章主要介绍了python readlines函数解析,需要的朋友可以参考下
    2023-06-06
  • Python开发游戏自动化后台脚本的实现

    Python开发游戏自动化后台脚本的实现

    本文主要介绍了Python开发游戏自动化后台脚本的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 用python中的matplotlib绘制方程图像代码

    用python中的matplotlib绘制方程图像代码

    今天小编就为大家分享一篇用python中的matplotlib绘制方程图像代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 你知道吗实现炫酷可视化只要1行python代码

    你知道吗实现炫酷可视化只要1行python代码

    这篇文章主要给大家介绍了关于利用Python进行数据可视化常见的9种方法!文中介绍的方法真的超实用!对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • 解析python高级异常和运算符重载

    解析python高级异常和运算符重载

    异常是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。 运算符重载,意味着在某个类的方法中拦截内置的操作,当类的实例出现在内置操作中,Python会调用你的方法,并且方法的返回值会作为相应操作的结果。本文主要介绍了python的高级异常和运算符重载
    2021-06-06
  • 基于SpringBoot构造器注入循环依赖及解决方式

    基于SpringBoot构造器注入循环依赖及解决方式

    这篇文章主要介绍了基于SpringBoot构造器注入循环依赖及解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 基于python批量处理dat文件及科学计算方法详解

    基于python批量处理dat文件及科学计算方法详解

    今天小编就为大家分享一篇基于python批量处理dat文件及科学计算方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python使用property完成数据隐藏封装与校验

    python使用property完成数据隐藏封装与校验

    这篇文章主要为大家详细介绍了python使用property完成数据隐藏封装与校验,实现安全修改,文中的示例代码讲解详细,希望对大家有所帮助
    2024-11-11

最新评论