尝试重塑数组时出错

时间:2018-02-04 14:43:16

标签: python machine-learning sklearn-pandas

我正在使用2个单独的数据集,一个用于培训,另一个用于测试

import numpy as np
import pandas as pd
import matplotlib.pyplot as pt
from sklearn.tree import DecisionTreeClassifier

data = pd.read_csv("train.csv").as_matrix()
data2 = pd.read_csv("test.csv").as_matrix()
clf = DecisionTreeClassifier()
# Dataset for training

train_data = data[0:41999,1:]
train_label = data[0:41999,0]

clf.fit(train_data,train_label)

# Dataset for Testing

test_data = data2[0:27999,1:]
actual_lable = data2[0:27999,0]
index = 5

sample = test_data[5]

sample.shape=(28,28)
pt.imshow(255-sample,cmap='gray')

print(clf.predict([test_data[5]]))
pt.show()

我在第35行中遇到错误:

sample.shape=(28,28)

我收到以下错误:

ValueError: cannot reshape array of size 783 into shape (28,28)

但如果我使用train_data中的值,则没有错误 即 而不是使用

sample = test_data[5]

如果我使用

sample = train_data[5]

我没有得到任何错误。你能解释为什么上面的代码会出错吗?

  • 列表项

1 个答案:

答案 0 :(得分:0)

28 * 28 = 784,对于分割后的测试数据,只有783个值,这就是它在重塑过程中导致错误的原因。

您必须打开测试文件并查看确切的列数。如果只有784列,那么你应该这样做:

test_data = data2[0:27999,:]

并且true_label可能存储在其他地方。