我有 2 个像这样的 numpy 矩阵。
矩阵1
arr1 =
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 1., 0.]])
矩阵2
arr2 =
array([[ 0., 0., 0.],
[ 0., 0., 1.],
[ 0., 0., 0.]])
我想找到这些矩阵的相似性。我认为 xor
可以用在矩阵上。 Xor 运算应该显示值的不同之处,然后我可以计算值 1 来计算相似度百分比。我不知道如何在 python 中使用 xor
。
此代码无效:a = arr1 xor arr2
。
最佳答案
您可以简单地使用 arr1 != arr2
结果:
>>> arr1 <b>!=</b> arr2
array([[False, False, False],
[False, False, True],
[False, True, False]], dtype=bool)
然后使用 .sum()
因为 int(False)
是 0
和 int(True)
是 1
:
>>> (arr1 != arr2)<b>.sum()</b>
2
所以有两个索引 arr1[i,j]
不等于 arr2[i,j]
。
如果你想计算相似度(这里定义为相同元素的数量)你可以使用:
>>> (arr1 <b>==</b> arr2).sum()<b>/arr1.size</b>
0.77777777777777779
所以 77.77% 的元素是相同的。
关于python - 我可以在 numpy 矩阵上使用 xor 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42538818/