Как проверить, находится ли матрица в списке матриц Python - PullRequest
0 голосов
/ 04 октября 2018

Это список матриц;

[matrix([[1, 0],
     [1, 0],
     [1, 0],
     [1, 0]]), matrix([[0, 0, 0, 0],
     [1, 1, 1, 1]]), matrix([[0, 1],
     [0, 1],
     [0, 1],
     [0, 1]]), matrix([[0, 0, 0, 0],
     [1, 1, 1, 1]]), matrix([[1, 1, 1, 1],
     [0, 0, 0, 0]])]

, и я хочу проверить, находится ли матрица уже в примере списка;

a=matrix([[0, 0, 0, 1],
    [1, 1, 1, 0]])

Так что, если a находится в m, топечать True else печать False

1 Ответ

0 голосов
/ 04 октября 2018

Я предполагаю, что вы используете NumPy.Если это так, не используйте np.matrix, используйте np.array.np.matrix существует почти исключительно по устаревшим причинам и имеет нежелательные функции.

Вы можете использовать any с пониманием генератора и np.array_equal.Это приведет к короткому замыканию на True, если массив найден во входном списке, в противном случае возвращается False.

import numpy as np

L = [np.array([[1, 0], [1, 0], [1, 0], [1, 0]]),
     np.array([[0, 0, 0, 0], [1, 1, 1, 1]]),
     np.array([[0, 1], [0, 1], [0, 1], [0, 1]]),
     np.array([[0, 0, 0, 0], [1, 1, 1, 1]]),
     np.array([[1, 1, 1, 1], [0, 0, 0, 0]])]

A = np.array([[0, 0, 0, 1], [1, 1, 1, 0]])

res = any(np.array_equal(A, i) for i in L)  # False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...