python编程问题之ValueError: Expected 2D array, got 1D array instead:array=[102,5]

本文介绍如何解决在使用Python的sklearn库时,因输入数据为一维数组而导致的预测错误问题。通过使用numpy包的array及reshape方法,可以轻松地将一维数据转换为适合模型预测的二维数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、由于python 中sklearn包的更新,不能直接将输入后的一维数据直接转换成二维数组 ,因此会出现关于上述所显示的问题,此时只需要将源代码中报错部分进行一些改进即可。

当我们建立了相应的模型后,要对已经建立好的模型进行测试新的数据的时候,会由于数据的维度不一致导致代码在运行的时候回报错。

1.1当只有一个数据组的时候

如下图所示为出错的原代码:

xPredict = [102,5]

运行后发现错误提示为:ValueError: Expected 2D array, got 1D array instead:array=[102,5]

即输入的数据没有转换为numpy包中所接受的数据类型。此时,我们要对已有的数据类型进行对应的转换。

针对此问题,做如下修改:

import numpy as np

xPredict = np.array([102,5]).reshape(1,-1)

首先,要在代码的最上方调用numpy包;然后,对之前的数据 类型进行转换,利用 numpy包中的np.array以及reshape方法进行数据的更新覆盖,使输入的一维数据转换为二维矩阵,符合方法调用时的数据类型即可 。

1.2当有多个数据组的时候

arr1 = [1,2,3,4]
arr2 = [5,6,7,8]
for index in range(0, len(arr1), 2):
	arr2.append(arr[index:index + 2])
print(arr2)

如上图所示,将两个一维数组进行合并更新覆盖,最后输出的arr2就是一个二维数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值