python數據集處理,加載成list


正確加載方法:

def loadDataSet(filename):
    numFeatures = len(open(filename).readline().split('\t')) - 1
    dataMat = []
    labelMat = []
    f = open(filename)
    for line in f.readlines():
        lineArr=[]
        curLine=line.strip().split('\t')
        for i in range(0,numFeatures):
            lineArr.append(float(curLine[i]))
        dataMat.append(lineArr)
        labelMat.append(float(curLine[-1]))
    return dataMat,labelMat

 

錯誤加載方法:

def loadDataSet(filename):
    f = open(filename)
    numFeatures = len(f.readline().split('\t')) - 1
    dataMat = []
    labelMat = []
    for line in f.readlines():
        lineArr=[]
        curLine=line.strip().split('\t')
        for i in range(0,numFeatures):
            lineArr.append(float(curLine[i]))
        dataMat.append(lineArr)
        labelMat.append(float(curLine[-1]))
    return dataMat,labelMat

 原因:獲取numFeatures時使用了readline()函數,使得句柄f移動到第二行,下面代碼中的readlines()函數只能讀取剩下的行,相當於少讀取了第一行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM