python - 在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
解决方案
你只需要有正确的尺寸。您要划分的必须是列向量。我们.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)
也将工作。
推荐阅读
- regex - 尽可能晚地找到正则表达式模式的出现
- python - 使用 NMSBoxesRotated 使用 YOLOV4 进行对象检测时出现 TypeError
- c++ - 带有 -mx32 开关的 gcc C++ - 如何在 Ubuntu 20.04 上运行
- firebase - 如何在firebase函数中选择退出请求正文解析?我必须在我的代码中进一步处理这个问题
- typescript - 如何正确键入索引的全局对象
- javascript - 如何在 JavaScript 的数组元素中找到某些字母?
- tcp - 我需要从 Teensy 发送和接收 UDP 数据包
- node.js - 使用 node.js 将文件描述符传递给子进程
- flutter - 如果我使用 ConnectionState.waiting,每次我尝试向 TextField 输入一些文本时,屏幕都会自行重建
- lambda - AWS Lambda 无法触发新实例进行并发操作,内存不足