我想存储列表的浮动值。这些值是从csv文件中提取的。
我所写的代码:
import numpy as np
import csv
from sklearn import datasets, metrics
from sklearn.model_selection import train_test_split
from neupy import algorithms, environment
environment.reproducible()
data1 = open('data.csv','r').read().split("\n")
target1 = open('target.csv','r').read().split("\n")
x1 = [[float(n) for n in e] for e in data1 ]
y1 = [[float(s) for s in f] for f in target1 ]
x_train, x_test, y_train, y_test = train_test_split(x1,y1,train_size=0.7)
pnn = algorithms.PNN(std=10,verbose=False)
pnn.train(x_train, y_train)
y_predicted = pnn.predict(x_test)
print(metrics.accuracy_score(y_test, y_predicted))我遇到的错误是:
WARNING (theano.configdefaults): g++ not detected ! Theano will be
unable to execute optimized C-implementations (for both CPU and GPU)
and will default to Python implementations. Performance will be
severely degraded. To remove this warning, set Theano flags cxx to
an empty string.
Traceback (most recent call last):
File "C:\Users\pc\AppData\Local\Programs\Python\Python36-32\pnn-3.py", line 16, in <module>
x1 = [[float(n) for n in e] for e in data1 ]
File "C:\Users\pc\AppData\Local\Programs\Python\Python36-32\pnn-3.py", line 16, in <listcomp>
x1 = [[float(n) for n in e] for e in data1 ]
File "C:\Users\pc\AppData\Local\Programs\Python\Python36-32\pnn-3.py", line 16, in <listcomp>
x1 = [[float(n) for n in e] for e in data1 ]
ValueError: could not convert string to float: '.'发布于 2017-04-23 15:08:05
当你这样做时:
data1 = open('data.csv','r').read().split("\n")data1是一个字符串列表
所以你就这么做:
x1 = [[float(n) for n in e] for e in data1 ]您正在迭代字符串,然后迭代字符串的字符。因此,转换(某种程度上)适用于第一个浮点数的第一个数字,然后在.上进行转换(例如:"3.1416":3被转换为浮点数(以一种有趣的方式工作),但之后您会遇到.,幸运的是,它失败了)。
你只是忘了按照csv分隔符来分割你的线路。
我将使用csv模块将行拆分为行,然后执行以下操作:
with open('data.csv','r') as f:
cr = csv.reader(f,delimiter=";") # change to whatever your delimiter is
x1 = [[float(n) for n in row] for row in cr]https://stackoverflow.com/questions/43572702
复制相似问题