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。
您可以简单地使用以下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)是0和int(True)是1:
>>> (arr1 != arr2).sum()
2Run Code Online (Sandbox Code Playgroud)
因此有两个索引arr1[i,j]不等于arr2[i,j]。
如果要计算相似度(此处定义为相同的元素数),则可以使用:
>>> (arr1 == arr2).sum()/arr1.size
0.77777777777777779Run Code Online (Sandbox Code Playgroud)
因此77.77%的元素相同。