Сравните матрицы в Python и найдите местоположение несовпадений - PullRequest
0 голосов
/ 27 июня 2018

У меня есть две матрицы, A и B, и они имеют одинаковую форму. Я хотел бы сравнить эти матрицы поэлементно и сохранить местоположение всех несоответствий. Скажи, что A:

[[1,2,3],
[4,5,6],
[7,8,9]]

и B:

[[1,2,3],
[3,5,6],
[7,7,9]]

Результатом будет что-то вроде списка с: lst = [(2,1), (3,2)]

Я анализирую некоторые картинки, так что мои матрицы на самом деле 3d (но я не думаю, что это будет иметь огромное значение).

Как только у меня будет список с несоответствиями, я воссоздаю все несовпадающие пиксели, чтобы увидеть их точные различия.

1 Ответ

0 голосов
/ 27 июня 2018

с np.argwhere

import numpy as np

a = np.array([[1,2,3],[4, 5, 6], [7,8,9]])
b = np.array([[1,2,3],[3, 5, 6], [7,7,9]])

ids = np.argwhere(a!=b) # indexes satisfying the condition

print(ids)
Вывод

(массивы индексируются от 0):

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