python 实现多维数组(array)排序
2020-03-11 17:50
639 查看
关于多维数组如何复合排序
如数组:
>>> 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 多维数组(array)排序
- 实现对多维数组按照某个键值排序的两种方法(array_multisort和array_sort)
- array_multisort实现PHP多维数组排序示例讲解
- LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现
- array_multisort实现PHP多维数组排序
- array_multisort实现PHP多维数组排序示例讲解
- array_multisort实现PHP多维数组排序示例讲解
- php-Arrays 函数-array_multisort-对多个数组或多维数组进行排序
- python 多维数组的排序
- LeetCode33.python实现: 搜索旋转排序数组问题☆☆
- PHP多维数组排序实现程序代码
- php--多维数组排序函数array_multisort
- php中array_multisort对多维数组排序的方法
- array_multisort — 对多个数组或多维数组进行排序
- PHP实现对多维数组按照某个键值排序的两种解决方法
- 【LeetCode-面试算法经典-Java实现】【088-Merge Sorted Array(合并排序数组)】
- php 对多维数组排序array_multisort
- LeetCode26. python实现:删除排序数组中的重复项问题☆
- Python 实现取多维数组第n维的前几位
- PHP多维数组排序 array_multisort()