首页 > 解决方案 > 在Python中划分数组以获得混淆矩阵

问题描述

我有一个对象,2x2,我想将它除以 2x1,这样第一个组件划分第一行,第二个组件划分第二行。我怎样才能做到这一点?

cm = sklearn.metrics.confusion_matrix(Y1,Y2)
cm_sum = np.sum(cm, axis=1)
cm_perc = cm /  cm_sum.astype(float) * 100

标签: pythonconfusion-matrix

解决方案


你只需要有正确的尺寸。您要划分的必须是列向量。我们.rehshape(-1,1)用来实现这一点。

a = np.array([[2,3], [5,6]])
print(a)
b = np.array([2, 4]).reshape(-1, 1)
print(b)
print(a/b)

输出

[[2 3]
 [5 6]]
[[2]
 [4]]
[[1.   1.5 ]
 [1.25 1.5 ]]

所以你的代码将是 -

Y1 = [1,0,1,0]
Y2 = [0,0,1,0]
cm = metrics.confusion_matrix(Y1,Y2)
cm_sum = np.sum(cm, axis=1).reshape(-1,1)
cm_perc = cm / cm_sum

在这种情况下,您也可以使用基本上保持尺寸和输出将是列向量的keepdims参数。np.sum所以 -

cm_sum = np.sum(cm, axis=1, keepdims=True)

也将工作。


推荐阅读