Перечислить все координаты x, y с указанием c значения в 2D-массиве numpy - PullRequest
0 голосов
/ 03 августа 2020

Я хочу найти «больше numpy», чем цикл, и если решение для задачи перечислить все (x, y) координат, имеющих значение, равное заданному m в 2D-массиве python.

например : это матрица 4x4

0 1 1 0
0 2 2 0
0 2 1 0
0 0 0 0

, и если m = 2, мне нужен список [(1,1), (1,2), (2,1)], поскольку эти ячейки = 2. мне нужны их координаты.

и если m = 1, затем [(0,1), (0,2), (2,2)] из-за Cell = 1.

Мне не нужно решение цикла и if и поместите i, j в список. Это немного медленно, любое решение, использующее numpy для более быстрого? Спасибо

Некоторые предлагают мне взглянуть на это numpy получить индекс, где значение истинно , но я попытался, и это не помогло.

Чтобы быть подробнее :

np.where(np.any(e==1, axis=0) в случае выдачи: [1,2] Да! согласен

np.where(np.any(e==1, axis=1) выдают: [0,2] Да! все еще в порядке, НО это не приводит к этому: [(0,1), (0,2), (2,2)] потому что информации о строке или столбце недостаточно,

Поэтому, пожалуйста, не недооценивайте этот вопрос и удаляйте мой вопрос снова и снова. Я устал от этого

1 Ответ

2 голосов
/ 03 августа 2020

Потеряйте часть np.any. Вот так:

np.array(np.where(e==1)).T

Внешний np.array и транспонированный .T предназначены только для того, чтобы расположить индексы таким образом, чтобы вам было легче читать.

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