参考《机器学习实战》
<span style="font-family:SimSun;font-size:18px;">1.def splitDataSet(dataSet, axis, value):
2. retDataSet = []
3. for featVec in dataSet:
4. if featVec[axis] == value:
5. reducedFeatVec = featVec[:axis]
6. reducedFeatVec.extend(featVec[axis + 1:])
7. retDataSet.append(reducedFeatVec)
8. return retDataSet</span>
参数:待划分的数据集、划分数据集的特征、划分数据集的特征的对应值
学习的地方:
1.函数传递的是列表的引用,所以需要新建一个列表,以防对原列表进行修改
2.列表的分片,代码的第五、六行将对原数据除去axis这个特征
3.列表方法的extend和append的区别
其中featVec[:axis] 返回的是一个列表,其元素是featVec这个列表的索引从0到axis - 1的元素,
也就是不包括axis这个索引上的值,若axis为0,则返回空列表
其中featVec[axis + 1: ]返回的是一个列表,其元素是featVec这个列表的索引从axis + 1开始的所有元素
方法e