我對自己沒有解決這個問題感到惱火;這很可能是微不足道的。但無論如何,假設我有一個未排序的陣列和一個用于對其進行排序的 argsort:
a = array([83, 75, 60, 80, 20, 6, 37, 81, 7, 21])
p = a.argsort()
b = a[p]
所以陣列b是陣列的排序版本a。現在我有一個從排序串列中選擇某些值的函式;假設該函式回傳串列
f = [0, 1, 2, 3, 6, 7]
這些是排序陣列的索引b。但是如何“反轉”排序,以便獲得指向 的相應值的索引a?在這種情況下,我們有
b[f]
[ 6 7 20 21 75 80]
和相應的索引a是
af = [5, 8, 4, 9, 1, 3]
我怎樣才能最容易地af從f、a和 中確定p?
uj5u.com熱心網友回復:
你不需要反轉任何東西。請記住,這p是a對應于 的每個元素的索引b。的f第 th 個元素b來自a以 的f第 th 個元素索引p:
a[p[f]]
換句話說,
af = p[f]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/339477.html
