我有一個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]
。
我希望你明白我的意思。
我有一個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]
。
我希望你明白我的意思。
也許不是很有效,但你可以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)
謝謝tobias_k ...這應該對我有用。 – user1050648
甚至沒有一點。我甚至不能在你的問題中看到一個字典。 – timgeb
調用列表'myDict'顯然會造成一些混淆。如果變量使用其他名稱(例如'ref',如tobias_k的答案中所示),並且標題應該是'根據來自列表的值來重新排列numpy數組'或類似內容,問題將得到改進。 –
對不起!我的錯誤。我編輯了這個問題 – user1050648