Python 中的颜色、标签

Colors, label in Python

X 是一个 100x2 向量,包含 2 种花的萼片和花瓣长度数据。 y 是一个 100x1 向量,其中包含我的数据的标签值:-1 和 1。我创建了一个 meshgrid,然后我使用 countourf 方法绘制了我的 meshgrid,现在我用这个将数据加载到 meshgrid 中代码:

for idx, cl in enumerate (np.unique(y)):
    plt.scatter (x=X[y == cl, 0], y= X[y == cl, 1], alpha=0.8, c=colors[idx], marker= markers [idx], label = cl, edgecolor = 'black')

alpha, colors, marker, edgecolor只是次要的东西。还有 np.unique(y) = [-1 1] .

我的问题是,为什么 [y==cl,0] 是假的而 [y==,1] 是真的?以及,如何使用 == 对我的数据进行分类?

在 for 循环中,cl 遍历 y 的两个 unique 值,即 [-1, 1]。因此,在第一个循环迭代中,cl=-1y == cl returns y 值为 -1 的行。因此,[y == cl, 0] returns y 为 -1 且数据为萼片长度的第一列(索引 0)的位置。类似地,[y == cl, 1] returns y 为 -1 且数据为第二列(索引 1)即花瓣长度的位置。

cl 为 1 时,同样适用于循环的第二次迭代。