Как получить первые наименьшие 5 значений в python Ndarray и получить их положение в ndarray - PullRequest
0 голосов
/ 16 января 2020

Я до сих пор не могу понять, как сделать это наилучшим из возможных способов с меньшим количеством кода, у меня есть Ndarray под названием X: array ([0.5, 2, 3.2, 0.16, 3.3, 10, 12, 2.5, 10, 1.2. ndarray X (на самом деле это значения строки в матрице, и я хочу знать положение самой маленькой 5) спасибо!

1 Ответ

2 голосов
/ 16 января 2020

Вы можете использовать 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 ]
...