np.where的用法 np.array(np.where(a == 1))的输出问题

y - 实际的标签 p - 预测

    p = [[1. 1. 1. 1. 1. 1. 0. 1. 1. 1. 1. 1. 1. 1. 0. 1. 0. 1. 1. 0. 1. 0. 0. 1.
1. 1. 1. 0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 1. 0. 0. 1. 1. 1. 0. 1. 1. 0. 1.
0. 0.]]
  y=[[1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 0 0
0 1 0 0 1 1 1 0 0 0 1 1 1 0]]
  a = [[2. 2. 2. 2. 2. 1. 1. 2. 2. 2. 2. 2. 2. 1. 0. 2. 0. 2. 2. 1. 2. 0. 0. 2.
2. 2. 2. 0. 1. 1. 2. 2. 2. 2. 1. 0. 0. 2. 0. 0. 2. 2. 2. 0. 1. 1. 1. 2.
1. 0.]]
    a = p + y
mislabeled_indices = np.array(np.where(a == 1))

为什么输出的mislabeled_indices = [[ 0 0 0 0 0 0 0 0 0 0 0]
[ 5 6 13 19 28 29 34 44 45 46 48]]
怎么是(2,x)的列表? 第0行为什么都是0?

np.where(a == 1)返回的是a=1对应的位置,需要用“行”和“列”表示,原矩阵a是个一维矩阵(行数只有一行)。
第一行的[ 0 0 0 0 0 0 0 0 0 0 0]代表的是对应点的行下标
第二行的[ 5 6 13 19 28 29 34 44 45 46 48]代表的是列下标
合起来,就是(0,5),(0,6),(0,13).......