在运行python程序时出现报错 y should be a 1d array, got an array of shape () instead.
出现这种报错是因为代码要求传入的一个一维数组,但是实际传入的却不是数组类型。
这种报错经常出现在你传入的是一个只有一个数据的一维数组时,比如对一个训练模型的预测函数进行单例测试。
eg:
#对单一数据实例进行编码测试
#随机生成一个测试数据
input_data = ['vhigh','vhigh','2','2','small','low','unacc']
#存储编码后的测试数据
input_data_encoded = [-1]*len(input_data)
for i, item in enumerate(input_data):
#根据训练数据的编码方式进行编码
input_data_encoded[i] = int(label_encoder[i].transform(input_data[i]))
#编码后的数据
input_data_encoded = np.array(input_data_encoded)
input_data_encoded = input_data_encoded.reshape(1,-1)
上面的例子会出现这样的报错,
label_encoder[i].transform(input_data[i])这里出错,for循环执行时,input_data[i]=‘vhigh’时,是一个字符串类型,而不是数组类型,我们只需要将input_data[i]转化成list类型即可。
label_encoder[i].tarnsform([input_data[i]])