NumPy: получение индексов пяти самых высоких значений в массиве

Чтобы получить индексы пяти самых высоких значений в массиве NumPy, вы можете использовать различные методы. Вот несколько подходов:

Метод 1: использование np.argsort

import numpy as np
arr = np.array([10, 5, 8, 15, 3, 2, 12, 9, 7, 20])
indices = np.argsort(arr)[-5:]

Метод 2: использование np.argpartition

import numpy as np
arr = np.array([10, 5, 8, 15, 3, 2, 12, 9, 7, 20])
indices = np.argpartition(arr, -5)[-5:]

Метод 3: использование np.argwhere

import numpy as np
arr = np.array([10, 5, 8, 15, 3, 2, 12, 9, 7, 20])
indices = np.argwhere(arr >= np.partition(arr, -5)[-5]).flatten()

Метод 4. Использование np.argwhere с np.argsort

import numpy as np
arr = np.array([10, 5, 8, 15, 3, 2, 12, 9, 7, 20])
indices = np.argwhere(arr >= np.sort(arr)[-5]).flatten()

Метод 5: использование np.argpartition с np.argsort

import numpy as np
arr = np.array([10, 5, 8, 15, 3, 2, 12, 9, 7, 20])
indices = np.argsort(np.argpartition(arr, -5)[-5:])

Эти методы извлекают индексы пяти самых высоких значений в массиве «arr». Вы можете заменить «arr» нужным массивом NumPy.