python 实现多维数组(array)排序
关于多维数组如何复合排序
如数组:
>>>importnumpyasnp >>>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 #实现多维矩阵的逆序排列 defdescend_sort(array): '''对三维数组倒序排列''' [height,width,channel]=array.shape sortArray=np.zeros([height,width,channel]) forhinrange(height): forwinrange(width): sortArray[h,w,:]=sorted(array[h,w,:],reverse=True) returnsortArray
形参是指定的三维数组,如果更多维的话,自动识别维度即可。
以上这篇python实现多维数组(array)排序就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。