国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

對python .txt文件讀取及數據處理方法總結

2020-02-22 23:48:52
字體:
來源:轉載
供稿:網友

1、處理包含數據的文件

最近利用Python讀取txt文件時遇到了一個小問題,就是在計算兩個np.narray()類型的數組時,出現了以下錯誤:

TypeError: ufunc 'subtract' did not contain a loop with signature matching types dtype('<U3') dtype('<U3') dtype('<U3')

作為一個Python新手,遇到這個問題后花費了挺多時間,在網上找了許多大神們寫的例子,最后終于解決了。

總結如下:

(1)出現此問題的原因是:目的是想計算兩個數組間的差值,但數組中的元素不是數據類型(float或int等),而是str類型的。

(2)解決方法:在為空數組添加數據過程中,將每個數據強制轉化為float型。

如將“character.append(dataSet[i][:-1])”修改為“ character.append([float(tk) for tk in dataSet[i][:-1]])”

現將利用Python讀取txt文件的過程總結如下:

python版本為python3.6

(1)函數定義,存放于Function.py文件中:

from numpy import *import random#讀取數據函數,返回list類型的訓練數據集和測試數據集def loadData(fileName):  trainingData=[] testData=[] with open(fileName) as txtData: lines=txtData.readlines() for line in lines:  lineData=line.strip().split(',') #去除空白和逗號“,”  if random.random()<0.7:  #數據集分割比例  trainingData.append(lineData) #訓練數據集  else:  testData.append(lineData) #測試數據集 return trainingData,testData#輸入數據為list類型,分割數據集,分割為特征和標簽兩部分,返回數據為np.narray類型def splitData(dataSet):  character=[] label=[] for i in range(len(dataSet)): character.append([float(tk) for tk in dataSet[i][:-1]]) label.append(dataSet[i][-1]) return array(character),array(label)

(2)實現兩個數組間的減法,存放于main.py文件中:

#__author__=='qustl_000'#-*- coding: utf-8 -*-import numpy as npimport FunctionfileName="1.txt"trainingData,testData=Function.loadData(fileName)trainingCharacter,trainingLabel=Function.splitData(trainingData)testCharacter,testLabel=Function.splitData(testData)diff1=np.tile(testCharacter[0],(len(trainingCharacter),1))-trainingCharacterprint('測試數據集的一條數據,擴充到與訓練數據集同維:')print(np.tile(testCharacter[0],(len(trainingCharacter),1)))print('訓練數據集:')print(trainingCharacter)print('作差后的結果:')print(diff1)

(3)運行結果:

測試數據集的一條數據,擴充到與訓練數據集同維:[[ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ] [ 1.5 60. ]]訓練數據集:[[ 1.5 40. ] [ 1.5 50. ] [ 1.6 40. ] [ 1.6 50. ] [ 1.6 60. ] [ 1.6 70. ] [ 1.7 60. ] [ 1.7 70. ] [ 1.7 80. ] [ 1.8 60. ] [ 1.8 80. ] [ 1.8 90. ] [ 1.9 90. ]]作差后的結果:[[ 0. 20. ] [ 0. 10. ] [ -0.1 20. ] [ -0.1 10. ] [ -0.1 0. ] [ -0.1 -10. ] [ -0.2 0. ] [ -0.2 -10. ] [ -0.2 -20. ] [ -0.3 0. ] [ -0.3 -20. ] [ -0.3 -30. ] [ -0.4 -30. ]]            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 从江县| 大埔区| 略阳县| 合江县| 新丰县| 娄底市| 满城县| 义马市| 北碚区| 邛崃市| 舞阳县| 石首市| 彭州市| 鄂伦春自治旗| 石渠县| 崇仁县| 耒阳市| 定兴县| 南陵县| 定边县| 双鸭山市| 保亭| 江西省| 开封县| 金川县| 重庆市| 黄陵县| 西盟| 富源县| 通州区| 土默特右旗| 石屏县| 南木林县| 阜新| 工布江达县| 隆昌县| 青田县| 黄大仙区| 嵊泗县| 陕西省| 岳普湖县|