您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 在numpy中有多个排序键的Sortrows

5b51 2022/1/14 8:20:24 python 字数 1024 阅读 473 来源 www.jb51.cc/python

我没有在SO上找到这个答案,所以我在这里分享: 问题:当有多个排序键时,如何在matlab中模拟sortrows功能?在matlab中,这看起来像是: sortrows(x,[3,-4]) 首先按第3列排序,然后按第2列排序. 如果按一列排序,可以使用np.argsort查找该列的索引,并应用这些索引.但是你如何为多列做到这一点? 语法非常笨拙并且看起来很奇怪,但最干净的事情是 np.lexsor

概述

问题:当有多个排序键时,如何在matlab中模拟sortrows功能?在matlab中,这看起来像是:

sortrows(x,[3,-4])

首先按第3列排序,然后按第2列排序.

如果按一列排序,可以使用np.argsort查找该列的索引,并应用这些索引.但是你如何为多列做到这一点?

data = np.array([[3,.24],[4,1,.41],[2,.63],[1,3,.38]]) #imagine rows of a spreadsheet
#Now do sortrows(data,-4])
ix = np.lexsort((data[:,3][::-1],data[:,2])) 
#this yields [0,2,3]

#note that lexsort sorts first from the last row,so sort keys are in reverse order

data[ix]

总结

以上是编程之家为你收集整理的python – 在numpy中有多个排序键的Sortrows全部内容,希望文章能够帮你解决python – 在numpy中有多个排序键的Sortrows所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶