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

标签 python numpy matrix

我有 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)0int(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/

相关文章:

python - 如何根据 James Bennett 的文章 "So you want a dynamic form"动态创建 ModelForm ?

python - 根据第一个元素的状态清除行

Python:更快地处理数组

c++ - XMMATRIX Decompose 不提供正确的比例、旋转和平移

python - 在加载到 pandas 数据框之前过滤掉 CSV 中的行

python - 如何在 python 中将 Integer 转换为 64 位大端整数

python - 如何让 PySolr 断开连接?

python - "expand"numpy ndarray 的好方法?

python - 计算矩阵元素和时的值错误

python - 如何从多个矩阵列表中创建矩阵?