简体   繁体   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 ) 谢谢!

You can use ndarray.argpartition :您可以使用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