我有一個a像這樣的numpy 數組In [318]: aOut[318]:array([[0. , 1. , 2. , 3. ], [0.5, 0.3, 0.2, 0.25]])我需要沿第二行(帶有 [0.5,0.3,0.2,0.25] 的行)排序,同時使第一行相應更改。在這種情況下,預期結果是2 3 1. 00.2, 0.25, 0.3, 0.5我怎樣才能做到這一點?謝謝。我嘗試使用 axis=-1 和 0 進行 np.sort; 它們不是我需要的。重要提示:性能是我解決問題的關鍵。我的圖像處理應用程序的數組通常有 N 列,其中 N 接近 400 萬。
1 回答

四季花海
TA貢獻1811條經驗 獲得超5個贊
用于np.argsort()獲取已排序行的索引,然后將其用作掩碼對整個數組進行排序(基于列):
In [69]: mask = np.argsort(a[1])
In [70]: a[:, mask]
Out[70]:
array([[2. , 3. , 1. , 0. ],
[0.2 , 0.25, 0.3 , 0.5 ]])
添加回答
舉報
0/150
提交
取消