我有兩個形狀為 (74395, 1) 的陣列存盤浮點值,其中 arr1[0] 與 arr2[0] 相關,依此類推。我想按存盤在第二個陣列中的值按升序對它們進行排序。
舉個例子:
arr1: [[1]
[2]
[3]]
arr2: [[6]
[2]
[4]]
想要的結果:
arr1: [[2]
[3]
[1]]
arr2: [[2]
[4]
[6]]
我怎么能在python中做到這一點?
uj5u.com熱心網友回復:
zip兩者一起,排序,zip再次轉置結果,并解構:
>>> arr1 = [1, 2, 3]
>>> arr2 = [6, 2, 4]
>>> arr2, arr1 = zip(*sorted(zip(arr2, arr1)))
>>> arr1
(2, 3, 1)
>>> arr2
(2, 4, 6)
uj5u.com熱心網友回復:
numpy.argsort與 一起使用numpy.take_along_axis:
ind = arr2.argsort(axis=0)
np.take_along_axis(arr1, ind, axis=0)
np.take_along_axis(arr2, ind, axis=0)
輸出:
(array([[2],
[3],
[1]]),
array([[2],
[4],
[6]]))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/514785.html
標籤:Python数组排序
上一篇:根據數字輸入計算最佳擬合
下一篇:序言中串列的排序串列?
