数据从csv中读取, 数据是:
【e,b,s,w,t,a,f,c,b,g,e,c,s,s,w,w,p,w,o,p,k,n,m
e,b,y,w,t,l,f,c,b,n,e,c,s,s,w,w,p,w,o,p,n,s,m
p,x,y,w,t,p,f,c,n,p,e,e,s,s,w,w,p,w,o,p,k,v,g
e,b,s,y,t,a,f,c,b,g,e,c,s,s,w,w,p,w,o,p,k,s,m
e,x,y,y,t,l,f,c,b,g,e,c,s,s,w,w,p,w,o,p,n,n,g
e,x,y,y,t,a,f,c,b,n,e,c,s,s,w,w,p,w,o,p,k,s,m
e,b,s,y,t,a,f,c,b,w,e,c,s,s,w,w,p,w,o,p,n,s,g
p,x,y,w,t,p,f,c,n,k,e,e,s,s,w,w,p,w,o,p,n,v,u
e,x,f,n,f,n,f,w,b,n,t,e,s,f,w,w,p,w,o,e,k,a,g】
他显示错误是 could not convert string to float: 'p'
这一行有问题 :readData[pos] = float(readData[pos]);
请问要怎么把数据转化成float先
代码:
def loadData(filePath): # load data and return two matrices
dataRaw = []
labelsRaw = []
DataFile = open(filePath)
while True:
theline = DataFile.readline()
if len(theline) == 0:
break
theline = theline.rstrip()
readData = theline.split(",")
for pos in range(len(readData)-1):
readData[pos] = float(readData[pos]);
dataRaw.append(readData[0:4])
#classes: edible=e, poisonous=p
if (readData[22] == 'Mushroom-e'):
labelsRaw.append(0)
if (readData[22] == 'Mushroom-p'):
labelsRaw.append(1)
DataFile.close()
data = np.array(dataRaw)
labels = np.array(labelsRaw)
return data, labels