python从txt文件读取数据

发布时间:2019-03-08 20:18:14编辑:auto阅读(3214)

      (作为一个python初学者,记录一点学习期间的笔记,方便日后查阅,若有错误或者更加便捷的方法,望指出!)

     1、读取TXT文件数据,并对其中部分数据进行划分。一部分作为训练集数据,一部分作为测试集数据:

    def loadData(filename,split,trainingSet=[],testSet=[]):
        with open(filename,'r') as file:
            lines = file.readlines()
            dataset = [[] for i in range(len(lines)-1)]
            for i in range(len(dataset)):
                dataset[i][:] = (item for item in lines[i].strip().split(','))   # 逐行读取数据
            print("dateset:",dataset)
            for x in range(len(dataset)):
                for y in range(len(dataset[0])-1):
                    dataset[x][y] = float(dataset[x][y])          # 将除最后一列的数据转化为浮点型
                if random.random() < split:                # 将数据集进行划分
                    trainingSet.append(dataset[x])
                else:
                    testSet.append(dataset[x])
        print("trainingSet",len(trainingSet))
        print("testset",len(testSet))
    
    loadData('irisdata.txt',0.8)

     



    2、提取csv文件中的数据,把特征值转化为:特征名称:特征值 的字典格式,用于调用sklearn库。
    转换结果如图:
    with open("AllElectronics.csv", 'r') as file:
        data_lines = file.readlines()
        data = [[] for i in data_lines]
        for i in range(len(data_lines)):
            data[i][:] = (item for item in data_lines[i].strip().split(","))
    
    headers = []
    featureList = []
    labelList = []
    for i in data[0]:
        headers.append(i)  # 提取第一行类别名称
    del(data[0])
    
    for row in data:
        labelList.append(row[-1])
        rowDict = {}
        for i in range(1,len(row)-1):    # 把每一行转换成一个字典,便于直接利用sklearn直接提供的库函数
            rowDict[headers[i]] = row[i]
        featureList.append(rowDict)
    print(labelList)
    print(featureList)

     

     

    
    

关键字

上一篇: Python学习 (1)

下一篇: python之shutil模块