将文本记录转换为NumPy的解析程序

datingTestSet2.txt文件中每行有4个数据,前三个为对象特征值,第四个为对象标签。将txt数据转换为numpy数组,将特征值与标签分离。代码为:

def file2matrix(filename):
    fr = open(filename)
    arrayOLines = fr.readlines() #读入所有行
    numberOfLines = len(arrayOLines) #行数
    returnMat = zeros((numberOfLines, 3))  #创建数组,数据集
    classLabelVector = [] #标签集
    index = 0
    for line in arrayOLines:
        line = line.strip()   #移除所有的回车符
        listFromLine = line.split('\t')  #把一个字符串按\t分割成字符串数组
        returnMat[index,:] = listFromLine[0:3] #取listFromLine的前三个元素放入returnMat
        classLabelVector.append(int(listFromLine[-1])) #选取listFromLine的最后一个元素依次存入classLabelVector列表中
        index += 1
    return returnMat, classLabelVector

#datingDatamat为特征数据集,datingLabels为标签集
datingDataMat, datingLabels = file2matrix('datingTestSet2.txt')

你可能感兴趣的:(机器学习)