使用Numpy在Python中进行混淆矩阵练习

使用Numpy在Python中进行混淆矩阵练习,python,arrays,numpy,loops,matrix,Python,Arrays,Numpy,Loops,Matrix,我试图建立一个混淆矩阵(2,2),给出两个列表作为输入,其中包括真阳性、假阳性、真阴性、假阴性。第一个列表包含实际值,第二个列表仅包含1和0的预测值 看起来我的for循环或if语句中缺少了一些内容,但我无法找出是什么 这是我的密码: import numpy as np y_true = [int(x) for x in input().split()] y_pred = [int(x) for x in input().split()] X = [] TP = float(0) FP =

我试图建立一个混淆矩阵(2,2),给出两个列表作为输入,其中包括真阳性、假阳性、真阴性、假阴性。第一个列表包含实际值,第二个列表仅包含1和0的预测值

看起来我的for循环或if语句中缺少了一些内容,但我无法找出是什么

这是我的密码:

import numpy as np

y_true = [int(x) for x in input().split()]
y_pred = [int(x) for x in input().split()]

X = []
TP = float(0)
FP = float(0)
FN = float(0)
TN = float(0)

for x, y in zip(y_true, y_pred):
    if x == 1:
        if y == 1:
            TP += 1
        else:
            FN += 1

    elif x == 0:
        if y == 1:
            FP += 1
        else:
            TN += 1

X.append(TP)
X.append(FP)
X.append(FN)
X.append(TN)

Y = np.array(X)
Y = Y.reshape(2, 2)

print(Y)

Input:
1100
1000

Output:
[[0. 0.]
[0. 0.]]

提前感谢您的帮助!另外,对于我的代码和逻辑内容的所有注释都非常受欢迎,因为我刚刚开始学习。

在python中,如果不插入任何字符,split()函数具有默认值。默认值为空格(“”)。所以不要尝试“1100”,而是“110”。然后,您可以得到您想要的结果。

非常感谢您。。。它现在按预期工作。我现在没有意识到这一点,我觉得很傻。祝你有一个美好的一天!