簡體   English   中英

如何在python Ndarray中獲取前5個最小值並獲取它們在ndarray中的位置

[英]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.

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