在此代码中:
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt
X, y = make_moons(n_samples=100, random_state=123)
plt.scatter(X[y==0,0], X[y==0,1], color='red', marker='^', alpha=0.5)
plt.scatter(X[y==1,0], X[y==1,1], color='blue', marker='o', alpha=0.5)
plt.show()
操作X[y==0,0]
对数据集X
究竟做了什么?
2条答案
按热度按时间ccrfmcuu1#
在本例中,变量
X
和y
都是numpy.ndarray类型。观察变量,我们可以看到变量
X
的形状为(100,2),这意味着X
有100行和2列,类似地,y
的形状为(100,),因此它只是一个一维向量,恰好只包含0和1。因此,
X[y==0,0]
查找y
值为0(y == 0
)且位于X
的第一列中的X的所有行6qqygrtg2#
(X[y== 0,0],X[y== 0,1])解释:
X[y== 0,0]
'y== 0',这将设置一个条件,即只要y为0,即只取y为0的那些示例
“,0”,这是列表中索引0处X的元素或X[0]
X[y== 0,0],整个表达式是x坐标,它说,'只有在那些y为0的列表中(忽略其余列表),才取X[0]作为x坐标。
X[y== 0,1],整个表达式是y坐标,它说,'只有在那些y为0的列表中(忽略其余列表),才取X[1]作为y坐标。
(X[y== 0,0],X[y== 0,1]),整个表达式是散点图中某个点的x和y坐标