[问题] 多维排列问题

楼主: JetaimeMia (你好)   2015-04-08 00:02:09
各位大大好
小鲁现在有个多维排序的问题
假设有2个list或array
每一个里面又有3*3的元素
e.g.
a=[ [9,8,7], [6,5,4], [3,2,1]]
b=[ [11,12,13], [14,15,16], [17,18,19]]
我要如何让b照着a来排序
结果希望像是
[[13,12,11],
[7,8,9]]
或是
[[13,7],[12,8],[11,9]]之类的
总之就是一个多维array或list照着另一个来排序
用了sort, sorted,等等在这种多维的情况下不知道是我哪里写错还是怎样
排不太出来
原本是用一个一个抓出来变一维的再排序的方法
不过在我的code里面数据一大就会跑得很慢
希望能直接改了再取出来这样
小鲁先谢谢各位了
作者: darkgerm (黑骏)   2015-04-08 00:17:00
照着另一个来排序?什么意思?
作者: ccwang002 (亮)   2015-04-08 01:26:00
能用 numpy 吗?sorted_ix = np.argsort(a, axis=1)_ix = np.arange(a.shape[0])[:, np.newaxis]sorted_a = a[_ix, sorted_ix]followed_b = b[_ix, sorted_ix]Ref http://stackoverflow.com/a/10922358这样能把 a 的顺序同步到 b 上,剩下怎么组合就看你了

Links booklink

Contact Us: admin [ a t ] ucptt.com