关于pandas Series中y.values==0,0等索引语法含义的技术咨询
关于
pca[y.values==0,0]这类语法的含义解析 背景说明
已知y是包含0和1的pandas Series对象,示例代码:
y= pd.Series([0,1,0,1,1,0])
绘图代码中用到了pca[y.values==0,0]这类写法,下面拆解解释:
绘图代码示例
plt.figure(dpi=120) plt.scatter(pca[y.values==0,0], pca[y.values==0,1], alpha=0.5, label='Edible', s=2) plt.scatter(pca[y.values==1,0], pca[y.values==1,1], alpha=0.5, label='Poisonous', s=2) plt.legend()
语法含义拆解
pca[y.values==0,0]是numpy数组的布尔索引+列索引组合写法,要分成两部分理解:
y.values==0:先把pandas Series转为numpy数组(y.values),再生成一个布尔数组——每个元素对应原数组位置的值是否等于0。比如示例中y.values是array([0,1,0,1,1,0]),y.values==0会得到array([True, False, True, False, False, True]),这个布尔数组用来筛选pca中对应行的样本。- 逗号后的
0:表示取pca数组的第0列(索引从0开始),也就是PCA降维后的第一个主成分特征值。
所以pca[y.values==0,0]整体的意思是:从PCA降维后的数组pca里,挑出所有对应y值为0的行,再提取这些行的第0列数据,用来做散点图的x轴坐标。
类似组合的区别
pca[y.values==0,1]:筛选y值为0的行,提取第1列数据(PCA第二个主成分),作为可食用样本散点图的y轴坐标。pca[y.values==1,0]:筛选y值为1的行,提取第0列数据,作为有毒样本散点图的x轴坐标。pca[y.values==1,1]:筛选y值为1的行,提取第1列数据,作为有毒样本散点图的y轴坐标。
这种写法的核心是用布尔索引按类别筛选样本,再通过列索引提取对应维度的特征值,实现按类别绘制PCA降维后的散点图。
内容的提问来源于stack exchange,提问作者nitish kumar
相关产品推荐
相关产品推荐

