[英]How to get the first smallest 5 values in a python Ndarray and get their position in the ndarray
我仍然無法弄清楚如何用更少的代碼以最好的方式做到這一點,我有一個名為 X 的 Ndarray: array([0.5 , 2 , 3.2 , 0.16 , 3.3 , 10 , 12 , 2.5 , 10 , 1.2 ])我想以某種方式獲得最小的 5 個值,它們在 X 中的位置是我想要的( 0.5 , 0.16 , 1.2, 2 ,2.5 ),並知道它們是 ndarray X 中的第一個和第四個、第 10 個和第二個第 8 個值(實際上是矩陣中一行的值,我想知道最小的位置 5 ) 謝謝!
您可以使用ndarray.argpartition
:
X = np.array([0.5 , 2 , 3.2 , 0.16 , 3.3 , 10 , 12 , 2.5 , 10 , 1.2 ])
n = 5
arg = X.argpartition(range(n))[:n]
print(arg)
# [3 0 9 1 7]
print(X[arg])
# [0.16 0.5 1.2 2. 2.5 ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.