我正在学习一本机器学习书,并且在代码的一部分中显示:
X_train_01_subset= X_train [(y_train ==0) | (y_train ==1)]
y_train_01_subset= y_train [(y_train ==0) | (y_train ==1)]
[X_train
是带有训练样本的104x2向量,而y_train
是104x1向量并且包含样本标签:0,1和2。
做什么
[(y_train ==0) | (y_train ==1)]
在X_train
和y_train
中做什么? (算法有点扩展,如果您需要放置所有代码,请告诉我)
分步打破。首先,这个
(y_train == 0)
(y_train == 1)
是生成布尔掩码的操作。
然后,这个:
(y_train ==0) | (y_train ==1)
是按位或操作。也就是说,如果两个值中的一个或两个均为1
,则输出1
。否则为0
。
这里是一个例子:
# inputs
In [22]: a = np.array([1, 1, 0, 0])
In [23]: b = np.array([1, 0, 1, 0])
# bitwise or
In [24]: a | b
Out[24]: array([1, 1, 1, 0])
最后,我们将以上结果用作索引,以从X_train
中检索样本:
X_train [(y_train ==0) | (y_train ==1)]