源代码:
for i, j in enumerate(np.unique(y_set)): plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1], c=ListedColormap(('orange', 'blue'))(i), label=j)
首先:举一个简单例子:
>>> import numpy as np
>>> x = np.array([[1, 2], [3, 4], [5, 6]])
>>> rowsum = x.sum(-1)
>>> rowsum
array([ 3, 7, 11])
>>> x[rowsum <= 7, :]
array([[1, 2],
[3, 4]])
>>> x[rowsum <= 7, 1]
array([2, 4])
>>> x[rowsum <= 7, 0]
array([1, 3])
这里x[rowsum <= 7, :]
当rowsum=3时,rowsum<=7为True,返回x第0行的每一列
当rowsum=7时,rowsum<=7为True,返回x第1行的每一列
当rowsum=11时,rowsum<=7为False,不返回矩阵值
同理, 这里x[rowsum <= 7, 0]
当rowsum=3时,rowsum<=7为True,返回x第0行的第0列
当rowsum=7时,rowsum<=7为True,返回x第1行的第0列
当rowsum=11时,rowsum<=7为False,不返回矩阵值
可以看出,rowsum<=7这个bool类型是控制每一行数据是否输出,而后面的0或者1则是控制输出某一列
综上,个人理解:X_set[y_set == j, 0]大概可以理解为当y_set==j为真时,取X_set当前行第0列的值并且执行scatter函数,为假时,不返回X_set矩阵值同时也不执行scatter函数。
有问题可以评论留言,我会及时回复 :P