【机器学习】 关于 “ X_set[y_set == j, 0] ” 的含义

源代码:

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

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值