我可以在numpy矩阵上使用xor吗?

use*_*575 3 python numpy matrix

我有这样的2 numpy矩阵。

矩阵1

arr1 =
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  1.,  0.]])
Run Code Online (Sandbox Code Playgroud)

矩阵2

arr2 =
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  1.],
       [ 0.,  0.,  0.]])
Run Code Online (Sandbox Code Playgroud)

我想找到这些矩阵的相似性。我认为xor可以在矩阵上使用。Xor操作应显示出值之间的差异,然后我可以对值1进行计数以计算相似性百分比。我不知道如何xor在python中使用。

该代码不起作用:a = arr1 xor arr2

Wil*_*sem 5

您可以简单地使用以下arr1 != arr2结果:

>>> arr1 != arr2
array([[False, False, False],
       [False, False,  True],
       [False,  True, False]], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

然后使用,.sum()因为int(False)0int(True)1

>>> (arr1 != arr2).sum()
2
Run Code Online (Sandbox Code Playgroud)

因此有两个索引arr1[i,j]不等于arr2[i,j]

如果要计算相似度(此处定义为相同的元素数),则可以使用:

>>> (arr1 == arr2).sum()/arr1.size
0.77777777777777779
Run Code Online (Sandbox Code Playgroud)

因此77.77%的元素相同。