为什么是x.shape[0]而不是x.shape[1]

来源:4-2 scikit-learn中的机器学习算法封装

慕斯卡6436947

2019-10-27

波波老师,这里的X_train.shape[1]我能想明白是指X_train中的列,也就是特征。请问为什么右边是x.shape[0]而不是x.shape[1]呢,不是也应该取x的列的数量吗?
请问是不是我对shape的含义有什么误解?
图片描述

写回答

1回答

liuyubobobo

2019-10-28

小的 x 是一个向量。这个向量中包含有多少元素,就是这个向量的 shape[0]。实际上,由于 x 是向量,所以是一维的,跟没有 shape[1]。


这句话的意思就是,大的 X (大写字母是矩阵) 的列数,应该和小的 x(小写字母是向量)的元素个数相同。


课程中大小写字母都是严格使用这种定义规定的。通过看变量名称,就能区分出一个变量到底表示的是一个二维矩阵,还是一维向量:)


继续加油!:)

3
3
liuyubobobo
回复
DorianXU
在这个代码中传的是小 x。reshape 以后传给的是 sklearn 的 KNeighborsClassifier。
2020-06-24
共3条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程