python - 在Python中将一维数组转换为基于类的二维矩阵

标签 python arrays numpy matrix scikit-learn

我正在使用多类分类器,因此为了在测试后对其进行评估,我需要将分类器 (y_pred) 的预测与真实的类值 (y_test)。

但我将它们都作为一维数组,如下所示:

y_test = [1, 1, 1, 2, 1, 4, 5, 3, ... etc ]
y_pred = [1, 1, 1, 2, 3, 2, 5, 0, ... etc ]

我总共有 46 个类(class)。

但是为了构建 ROC 曲线(如这里: http://scikit-learn.org/stable/auto_examples/plot_roc.html ),我猜我需要将 y_testy_pred 放在二维矩阵中具有以下形状的二进制值: 测试用例数 x 类数

其中每一列代表一个类,1 表示分类器在给定的测试样本行上识别出该类。

因此,鉴于我显示的上述几个值,我知道我需要 y_test 看起来像这样:

y_test = [ 1 0 ... 
           1 0
           1 0
           0 1 
           1 0   
           0 1
           0 0
           0 0
           ...

这就是我的理解......我希望我是对的!

是否有任何numpy函数可以从一维数组创建这样的矩阵?

最佳答案

看看 label_binarize链接中的示例代码中引用的函数。

关于python - 在Python中将一维数组转换为基于类的二维矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25125893/

相关文章:

python - 加速pandas groupby中的滚动总和计算

c - 在for循环中填充二维数组

python - Pandas自条件列

python - 具有 X、Y 坐标到 NumPy 矩阵的 Pandas DataFrame

python - 使用像素坐标 (OpenCV) 在图像上绘制多个标记

python - 在python中读取文件

python - Paramiko 会为失败的连接抛出什么错误/异常?

python - 覆盖当前类python3中的打印方法

c# - 从数组中获取字符串或在单行中设置默认值

java - 排列数组元素最大化距离 vector Java