在使用python做验证码识别的过程中,在调用numpy的loadtxt函数时发生如下错误
Traceback (most recent call last): File "D:My Documentstest_jpgok.py", line 362, in <module> validation() File "D:My Documentstest_jpgok.py", line 350, in validation dataset = load_data() File "D:My Documentstest_jpgok.py", line 343, in load_data dataset = np.loadtxt(u'./train_data.txt', delimiter=',') File "C:Python34libsite-packagesnumpylibnpyio.py", line 1021, in loadtxt % line_num) ValueError: Wrong number of columns at line 2
首先讲解下这个loadtxt 函数,大概就是把文本文件(*.txt)读入并以矩阵或向量的形式输出。
我在SVM训练时读入train data时使用这个函数来读取训练数据
调用参数中
delimiter表示用什么来分隔列,在默认情况下是通过空格来分割列的,我这里使用的是','
skiprows,作用是跳过头行,
usecoles,作用是跳过几列来读取
unpack,这个参数则是 正常情况下该返回的是二维矩阵,若设置了unpack=True将返回各列
我的使用方法是在将验证码分隔后,将特征写入到traindata.txt中,然后训练时使用loadtxt读入数据,但是报错为
ValueError: Wrong number of columns at line 2
调查后证实原因如下:
因为我的验证码分割后的图片大小不一致,特征值写入后的文件每行的长度不一样
这样loadtxt读取到的二维矩阵就出现了异常