(作為一個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)

