[問題] 多維排列問題

作者: 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