簡體   English   中英

Python:NumPy排序數組

[英]Python : NumPy sorting array

我目前正在嘗試對 numpy 數組進行排序,但我遇到了困難

我要排序的數組如下:

mat = np.array([0.05170475 0.07367926 0.05741241 0.34870369 0.19990381 0.26859608])

現在這里的困難部分是我想對數組進行排序,但同時也要保留索引。

例如,不使用numpy ,我會使用

mat = list(enumerate(mat))    # gives [(0, 0.05170474575702143), (1, 0.07367926270375554), (2, 0.05741241249643288), (3, 0.3487036852148175), (4, 0.19990381197331886), (5, 0.2685960818546567)]
mat.sort(reverse = True, key = lambda ×: ×[1])    # gives [(3, 0.3487036852148175), (5, 0.2685960818546567), (4, 0.19990381197331886), (1, 0.07367926270375554), (2, 0.05741241249643288), (0, 0.05170474575702143)]

但是,由於我使用的是numpy ,我想知道是否可能有一個 numpy function 可以做到所有這些。 我能夠使用np.sortnp.argsort分別對索引和值進行排序,但我無法同時進行這兩項操作......

indices = np.argsort(mat)[::-1]
np.hstack((indices[:, np.newaxis], mat[indices][:, np.newaxis]))
array([[3.        , 0.34870369],
       [5.        , 0.26859608],
       [4.        , 0.19990381],
       [1.        , 0.07367926],
       [2.        , 0.05741241],
       [0.        , 0.05170475]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM