[报错]ValueError: Expected 2D array, got scalar array instead
报错代码:
print(
model.predict(1.5)
)
报错结果:
ValueError: Expected 2D array, got scalar array instead:
array=1.5.
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
解决思路:
值错误:应为二维数组,而得到的是一维数组:
使用array重新调整数据的形状。如果数据有单个功能或数组,则重新调整形状(-1,1)。如果数据包含单个示例,则重新调整形状(1,-1)。
这是由于在新版的sklearn中,所有的数据都应该是二维矩阵,哪怕它只是单独一行或一列(比如前面做预测时,仅仅只用了一个样本数据),所以需要使用.reshape(1,-1)进行转换,具体操作如下。
解决方案:
加上
new_x = np.array(new_x).reshape(1, -1)
修改后的代码:
new_x = 1.5
new_x = np.array(new_x).reshape(1, -1)
pre_y = model.predict(new_x)
print(pre_y)