Нахождение индекса максимального числа в матрице python, которая включает строки - PullRequest
0 голосов
/ 03 февраля 2020

Я понимаю, что

np.argmax(np.max(x, axis=1))

возвращает индекс строки, содержащей максимальное значение, а

np.argmax(np.max(x, axis=0))

возвращает индекс строки, содержащей максимальное значение.

Но что, если матрица содержит строки? Как я могу изменить код так, чтобы он все еще находил индекс наибольшего значения?

Кроме того (если нет способа сделать то, что я ранее просил), могу ли я изменить код так, чтобы операция выполнялась только выполняется в подразделе матрицы, например, в нижней правой подматрице «2x2» в этом примере:

array = [['D','F,'J'],
['K',3,4],
['B',3,1]]

[[3,4],
[3,1]]

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Хотя это и не эффективно, это может быть одним из способов найти индекс максимального числа в исходной матрице с помощью срезов:

newmax=0
newmaxrow=0
newmaxcolumn=0

for row in [array[i][1:] for i in range(1,2)]:
    for num in row:
        if num>newmax:
            newmax=num
            newmaxcolumn=row.index(newmax)+1
            newmaxrow=[array[i][1:] for i in range(1,2)].index(row)+1

Примечание: этот метод не будет работать, если число строк находится внутри строки 0 или столбец 0.

0 голосов
/ 03 февраля 2020

Можете ли вы сначала попытаться преобразовать столбец в тип dtype? Если вы берете мин / макс столбца dtype, он должен использовать строковые значения для минимума / максимума.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...