2011-10-26 54 views

回答

12
import numpy as np 
a = np.array([[4,9,2],[5,1,3]]) 
idx = np.argsort(a[1]) 

現在你可以使用IDX索引你的數組:

b=a[:,idx] 
+0

真棒,非常感謝!這個解決方案比我期待的要簡單得多。我正在閱讀numpy的argsort()示例,可能是過度考慮這個問題。 – woodstock

1

我能想到的唯一(高效)解決方案需要原始數組的副本。

import numpy as np 
a = np.array([[4,9,2],[5,1,3]]) 
idx = np.argsort(a[1]) 

所以,這idx的索引排序列。

c = a.copy() 
for i in range(len(idx)): 
    a[:,i] = c[:,idx[i]] 

這應該是相當快的,但是,當然,浪費了一些記憶。