《機器學習實踐》程式清單2-2

王明輝發表於2018-01-27

將文字記錄轉換為NumPy的解析程式

def file2matrix(filename):
    print("讀入檔案" + str(filename))

    #以下兩行為開啟文字檔案並讀取內容到陣列,有沒有發現這個操作好簡單?!
    fr = open(filename)
    arrayOLines = fr.readlines() #把檔案中的文字轉為陣列

    numberOfLines = len(arrayOLines)#得到檔案行數
    returnMat = zeros((numberOfLines,3)) #建立返回的Numpy矩陣,1000行所有值均為0的
    #print(returnMat)
    classLabelVector = []
    index = 0
    for line in arrayOLines:
        line = line.strip()
        listFromLine = line.split('\t') 
        print(listFromLine)

        #訪問矩陣中的元素的方法
        #returnMat[1,0:3],3個數字依次表示第1行,從第0列開始,到第2列
        #returnMat[1,0:],2個數字依次表示第1行,從第0列開始,到第最後一列
        #returnMat[1,:],1個數字依次表示第1行,從第0列開始,到第最後一列,即全部列
        #returnMat[2,:3],1個數字依次表示第2行,從第0列開始,到第2列
        returnMat[index,0:] = listFromLine[0:3]
        
        classLabelVector.append(int(listFromLine[-1]))
        index += 1
    #print(returnMat[1,0:4])
    return returnMat,classLabelVector

 

相關文章