菜鸟初学第二周之kNN分类算法约会网站匹配

时间:20180716-20180722

Ubuntu14 + cuda8.0对应tensorflow1.2

def file2matrix  (filename):
    fr = open(filename)  # 打开文件名为filename的文件
    arrayOLines = fr.readline()  # 按行读取文本数据,自动生成一个列表。
    # 一次读取整个文本数据,并且自动将文件内容分析成一个行的列表,比readline()快
    # 后面的img2vector就是使用的readline(),因为要逐行逐个读取,可以对比一下
    # 每个样本数据占据一行
    numberOfLines = len(arrayOLines)  # 样本数据的个数
    returnMat = zeros((numberOfLines, 3))  # 创建一个矩阵numberOfline行3列
    classLabelvector = []
    index = 0
    for line in arrayOLines:  # 循环处理文件
        print(line)
        line = line.strip()  # 去掉回车符,pre(使上下的数据紧凑在一起),
        # 括号里面是之前不太对的理解,是去掉那个超级大的一行的列表中的回车符“\n” ,然后一行一行的处理,才得到所看到的上下的数据紧凑在一起的数据
        # 也就是说,不是一次就得到的,是迭代出来的,所显示的是最终迭代完成之后的结果print line很多
        # strip() 方法用于移除字p符串头尾指定的字符(默认为空格或换行符)或字符序列
        listFromLine = line.split('\t')  # python split()默认以空格分割成列表,split(\t)是按tab分割

        # 分成了4列数据,得到了4个列表

        returnMat[index, :] = listFromLine[0:3]  # 将数据前三列提取出来,存放到returnMat的NumPy矩阵中,也就是特征矩阵
        classLabelvector.append(int(listFromLine[-1]))  # 将不喜欢,极具魅力,一般魅力填到分类标签
        index += 1  # 继续迭代
    return returnMat, classLabelvector

猜你喜欢

转载自blog.csdn.net/qq_36271653/article/details/81174418