Python:计算两个矩阵的类似元素

时间:2016-04-15 22:52:23

标签: python numpy matrix

所以我必须使用numpy 2D数组的邻接矩阵,我想计算两者之间相似元素的数量。这可能听起来很傻,我知道它可以使用一个简单的for循环完成,但我想知道是否有一个oneliner这样做?或者可能是一种更快的方法,因为我正在处理大型矩阵。以下代码就是我现在所拥有的:

adj1 = graph1.get_adjacency()
adj2 = graph2.get_adjacency()

count = 0
for i in range(len(adj1)):
    for j in range(len(adj1)):
        if adj[i][j] == adj[i][j]:
            count += 1

2 个答案:

答案 0 :(得分:3)

试试这个:

np.sum(adj1 == adj2)

如果adj1和adj2的dtype是float:

np.sum(np.isclose(adj1, adj2))

答案 1 :(得分:1)

如果您希望能够使用比较adj1和adj2的结果,我建议将其分为两行:

test = np.equal(adj1,adj2)
count = sum(test[test == True])

但这会给你与接受的答案相同的结果。