[报错]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)
posted @ 2020-03-06 13:07  ZzUuOo666  阅读(662)  评论(0编辑  收藏  举报