我有一个csv文件,我试图使用 Pylearn2 模块将其数据转换为密集设计矩阵。然而,导致错误的原因与pylearn2无关,而与我的个人实现有关。
import csv
def load_data(fileName_X, start, stop):
with open(fileName_X, 'r') as f:
reader_X = csv.reader(f, delimiter=';')
X = []
header = True
size=0
for row_X in reader_X:
if header:
header = False
continue
row_X = [float(elem_X) for elem_X in row_X]
size+=1
X.append(row_X)
X = np.asarray(X)
if __name__ == "__main__":
train = load_data(sys.argv[1], 0, 10)
以下是.csv文件的一些行:
-1;-0.844511;-0.339286;-1;0.0769231;-0.25;-0.929825;1;1;-0.880597;1;0;-0.92;-0.99
1;-0.796992;-0.8275;-1;0.0769231;-0.25;-0.859649;1;1;-0.671642;1;-1;-0.8;-0.94
1;-0.611429;-0.875;-1;0.0769231;-0.25;-0.929825;1;1;-0.850746;1;-1;-0.84;-0.88446
-1;-0.661654;-0.119286;-1;0.846154;0.75;-0.754386;1;1;-0.820896;-1;-1;-0.6;-0.99084
通常我期望的是在;
中将每行的所有值分隔为row_X
。但是当我运行程序时,我收到了这个错误:
Traceback (most recent call last):
File "make_dataset.py", line 68, in <module>
train = load_data(sys.argv[1], 0, 10)
File "make_dataset.py", line 53, in load_data
row_X = [float(elem_X) for elem_X in row_X]
ValueError: invalid literal for float(): 1;-0.796992;-0.8275;-1;0.0769231;-0.25;-0.859649;1;1;-0.671642;1;-1;-0.8;-0.94
我无法找到原因是该程序与另一个包含这些行的csv文件正常工作(只是为了比较它可能的不同形式与第一行):
7.4;0.7;0;1.9;0.076;11;34;0.9978;3.51;0.56;9.4;5
7.8;0.88;0;2.6;0.098;25;67;0.9968;3.2;0.68;9.8;5
7.8;0.76;0.04;2.3;0.092;15;54;0.997;3.26;0.65;9.8;5
11.2;0.28;0.56;1.9;0.075;17;60;0.998;3.16;0.58;9.8;6