Есть ли способ найти каждый индекс входного значения в 2-м массиве? - PullRequest
3 голосов
/ 17 июня 2020

Я пытался создать функцию в python, которая возвращает координаты x, y каждого повторяющегося значения в 2d-массиве. Например, если бы у меня был массив и значение

array = [ [1 ,2 ,3]
          [2 ,3 ,1]
          [3 ,2, 1]]

search = 1

, он бы выводил (0,0) (1,2) (2,2)

. Я пытался использовать некоторые функции, такие как np.where, или преобразовывал его в a pandas data frame и поиск таким способом, но я не уверен, как это лучше сделать. Когда я использую np.where, он возвращает пустой массив, потому что я использую длинные десятичные числа. Я пытаюсь сделать это на массиве размером 200 x 200.

1 Ответ

5 голосов
/ 17 июня 2020

Мы можем сделать np.where PS: a - это ваш массив

list(zip(*np.where(a==search)))
[(0, 0), (1, 2), (2, 2)]

Как упоминалось в hpaulj

np.argwhere(np.isclose(a,search))
array([[0, 0],
       [1, 2],
       [2, 2]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...