这是矩阵列表;
[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 否则打印 False
最佳答案
我假设您正在使用 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
关于python - 如何检查矩阵是否在矩阵列表中 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52636882/