无法解释matplotlib打印

无法解释matplotlib打印,matplotlib,Matplotlib,我从一个培训班得到了以下代码 from sklearn.datasets import make_moons X, y = make_moons(n_samples=1000, noise=0.1, random_state=0) plt.plot(X[y==0, 0], X[y==0, 1], 'ob', alpha=0.5) plt.plot(X[y==1, 0], X[y==1, 1], 'xr', alpha=0.5) plt.legend(['0', '1']) 我无法理解以下内容

我从一个培训班得到了以下代码

from sklearn.datasets import make_moons

X, y = make_moons(n_samples=1000, noise=0.1, random_state=0)
plt.plot(X[y==0, 0], X[y==0, 1], 'ob', alpha=0.5)
plt.plot(X[y==1, 0], X[y==1, 1], 'xr', alpha=0.5)
plt.legend(['0', '1'])
我无法理解以下内容

  • 十、 y将被分配1000个数据点?我们将如何区分X和y之间的值

  • plt.plot(X[y==0,0],X[y==0,1]&plt.plot(X[y==1,0],X[y==1,1]我们在这里尝试什么?我不理解X[y==0,0],X[y==0,1]和X[y==1,0],X[y==1,1]


  • 有人能帮我理解上面的代码吗?

    很抱歉,这些都是非常基本的问题,您可能需要先复习一下python知识,然后再开始学习更高级的内容

    • make_moons
      返回一个元组(X,y),该元组被解包到变量X和y中。这与允许您编写以下内容的逻辑相同:

      a、 b=1,2

    这将产生两个变量
    a
    b
    ,分别等于
    1
    2

    • X
      是一个维度矩阵
      (1000,2)
      语法
      X[:,0]
      获取第一列,而
      X[:,1]
      获取第二列。此外,代码仅选择行,例如,
      y==0
      y
      是形状向量
      (1000,)
      y==0
      返回一个形状向量
      (1000,)
      ,其中每个元素都是
      True
      False
      ,这取决于元素是否等于0。因此
      X[y==0,0]
      仅返回
      X
      的第一列以及
      y
      等于0的行。有关数组索引的详细信息,请访问

    谢谢朝日。现在有道理了。我对语法感到困惑,但谢谢你的帮助。