Предположим, у меня есть 2D-массив numPy, например:
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Как мне найти индекс строки, для которой мне известно несколько значений? Например, если известно, что 0-й столбец равен 2, а 1-й столбец равен 5, я хотел бы знать индекс строки, в которой выполняется это условие (строка 1 в данном случае).
В моем приложении первый два столбца - координаты (x, y), а третий столбец - информация об этой координате. Я пытаюсь найти определенные координаты в списке, чтобы изменить значение в третьем столбце.
РЕДАКТИРОВАТЬ: Чтобы уточнить, вот неквадратный пример:
a = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18]]
Предположим, я знаю, что в строке, которую я ищу, 13 в 0-й столбец и 14 в 1-м столбце. Я хочу вернуть индекс этой строки. В этом случае я хотел бы вернуть индекс 2 (2-я строка).
Или, что еще лучше, я хотел бы отредактировать 4-й столбец строки, у которой 13 в 0-м столбце и 14 в 1-м столбце. Вот решение, которое я нашел для описанного мной случая (изменение значения на 999):
a [(a [ :, 0 ] == 13) & (a [: , 1 ] == 14), 3] = 999
дает:
a = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 999, 17, 18]]
Прошу прощения, если это было неясно. Может ли кто-нибудь указать в моем исходном сообщении (над правкой), как это можно интерпретировать по-другому, потому что я не могу это увидеть.
Спасибо.
РЕДАКТИРОВАТЬ 2: Исправлена ошибка при первом редактировании (выделено жирным шрифтом)
Теперь я понимаю, как я запутал всех во всем этом. Решение моей проблемы хорошо описано в условии b) решения eat. Спасибо.