2016-04-11 86 views
-1

我有一個4-dim numpy數組。我必須根據另一個列表的順序對這個數組的列進行排序。根據列表值重新排列numpy數組

例如:說我的陣列是A和mylist = ['i','j','k','l']在這種情況下,我必須返回A[0],[A[1],A[2],A[3](i = 0, j = 1, k = 2, l =3)

現在,mylist可以顯示爲['k','l','j','i'],在這種情況下,要返回的A的順序是A[2],A[3],A[1],A[0]

我希望你明白我的意思。

+5

甚至沒有一點。我甚至不能在你的問題中看到一個字典。 – timgeb

+0

調用列表'myDict'顯然會造成一些混淆。如果變量使用其他名稱(例如'ref',如tobias_k的答案中所示),並且標題應該是'根據來自列表的值來重新排列numpy數組'或類似內容,問題將得到改進。 –

+0

對不起!我的錯誤。我編輯了這個問題 – user1050648

回答

1

也許不是很有效,但你可以zip與排序的參照列表,排序由原始引用列表中index數組:「我希望你明白我的意思」

>>> ref = ['k','l','j','i'] 
>>> to_sort = [0,1,2,3] 
>>> sorted((ref.index(r), x) for r, x in zip(sorted(ref), to_sort)) 
[(0, 2), (1, 3), (2, 1), (3, 0)] 
>>> zip(*_)[1] 
(2, 3, 1, 0) 
+0

謝謝tobias_k ...這應該對我有用。 – user1050648