程序清单3-2:
本笔记将主要注意力放在理解代码上,所以大家看代码中的注释即可
伪代码
#划分数据集,得到与value数据相同且去除掉value特征值列的新的数据集
#dataSet:待划分数据集。axis:划分数据集的特征。value:抽取的特征值
def splitDataSet(dataSet, axis, value):
#Python传递的是引用(相当于C的指针),如果不想调用的参数被修改,需创建一个新的列表对象
retDataSet = []
for featVec in dataSet:
#feat[axis]相当于dataSet[featVec][axis]
#如果该行该列与value相等
if featVec[axis] == value:
reducedFeatVec = featVec[:axis] # chop out axis used for splitting
#extend的用法,书中介绍的清晰,不再赘述
#将axis+1开始后的数据抽取出来组成一个向量
reducedFeatVec.extend(featVec[axis + 1:])
# 将向量添加到retDataSet中
retDataSet.append(reducedFeatVec)
return retDataSet
完整代码
from math import log
def createDataSet