如果你通過了axis=None
參數argsort
,它返回的扁平陣列的分類索引(按升序排列)。 numpy.unravel_index
函數將平展數組的索引轉換爲給定形狀的數組的索引。
>> a = np.array([[1,2,3],[4,3,1]])
>> np.unravel_index(a.argsort(axis=None), dims=a.shape)
(array([0, 1, 0, 0, 1, 1], dtype=int64),
array([0, 2, 1, 2, 1, 0], dtype=int64))
的unravel_index
結果是陣列,其中每個陣列是沿着每個相應的軸的索引的元組。要配對指數爲座標,我們可以使用zip
:
>> ix = np.unravel_index(a.argsort(axis=None), dims=a.shape)
>> zip(*ix)[-3:]
[(0, 2), (1, 1), (1, 0)]
這是再次按升序排列。我們可以用一個負面的步伐來以降序排列。
>> zip(*ix)[:2:-1]
[(1, 0), (1, 1), (0, 2)]
這裏的整個事情在同一行,其中n
是「頂」座標你想要的號碼。
>> zip(*np.unravel_index(a.argsort(axis=None), dims=a.shape))[::-1][:n]
這會給我的價值,但我怎麼得到那些價值指數呢? – user1835351 2014-11-24 04:08:18
@ user1835351我更新了答案 – Kasramvd 2014-11-24 04:14:08