Я знаю, как найти индексы максимального элемента n-мерного массива.
Давайте, к примеру:
a=np.asarray([[1,7,-4],[9,-11,-17]])
Тогда ( источник ):
from numpy import unravel_index
unravel_index(a.argmax(), a.shape)
возвращение:
(1, 0)
и действительно a[1,0]
равно 9
, что является самым высоким элементом в массиве a
, поэтому мы хороши.
Я также могу выяснить, как найти индексы i-го по величине элемента одномерного массива numpy (, используя ):
a = np.array([1, 3, 2, 4, 5])
i=3 # we want the third largest element, for example
a.argsort()[-i]
Возвращает 1
, что хорошо, поскольку a[1]=3
, который действительно является третьим по величине элементом a
.
Я хотел бы объединить эти два. Так что, если у меня есть
a=np.asarray([[1,7,-4],[9,-11,-17]])
Я хотел бы получить вывод, сообщающий мне индексы i-го по величине элемента массива a
, например, если i=3
, вывод должен быть [0,0]
, поскольку a[0,0]=1
- это i-й (третий ) самый большой элемент a
.
Как я могу это сделать?