Я хочу извлечь значения массива «B» с одним и тем же индексом максимума каждой строки матрицы «A». найти индекс я использую Numpy функцию «numpy.argmax», как это:Использовать индекс максимального значения на определенной оси
>>> A=numpy.asarray([[0,1,6],[3,2,4]]);A
array([[0, 1, 6],
[3, 2, 4]])
>>> argA=numpy.argmax(A,axis=1);argA
array([2, 2])
Проблема заключается в том, что я не знаю, как использовать «Арга» для извлечения значений в массиве «В»
Я уже попробовать это, но он не работает: B = numpy.arange (6); B. shape = (2, -1); B массив ([[0, 1, 2], [3, 4, 5]]) >>> B [argA] Traceback (последний последний звонок): Файл " ", строка 1, в IndexError: index (2) вне диапазона (0 <= index <1) в размере 0 –
loco
@loco - вы забыли ','? (Я сделал). - например. 'B [:, argA]' вместо 'B [: argA]' – mgilson
@loco обратите внимание, что вы должны получить его вдоль правой оси - 'B [argA]' пытается использовать значения 'argA' вдоль оси 0 , что дает эту ошибку. 'B [:, argA]' говорит ему вместо этого использовать ось 1. – lvc