python 如何停止错误代码“预期2D阵列”

jgzswidk  于 2023-06-28  发布在  Python
关注(0)|答案(2)|浏览(66)

我尝试预测 Dataframe 中特定数据的结果。请给我解决这个问题的方法。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
df = pd.read_csv(r'C:\Users\USER\Downloads\homeprices.csv')

reg = LinearRegression()
reg.fit(df[['area']], df.price)
reg.predict(3300)

这个返回

ValueError: Expected 2D array, got 1D array instead:

array=[3300].
c0vxltue

c0vxltue1#

reg. predict()在与www.example.com()相同的维度上等待X。如果检查df[['area']].shape,您可以看到类似于(n,1)的内容。reg.fit所以解决方案是:

reg = LinearRegression()
reg.fit(df[['area']], df.price)
reg.predict([[3300]])

reg = LinearRegression()
reg.fit(df[['area']], df.price)
reg.predict(np.array([[3300]]))

reg = LinearRegression()
reg.fit(df[['area']], df.price)
reg.predict(pd.DataFrame([[3300]], columns=['area']))

所有这些结构都是具有1列和1行的二维结构

km0tfn4u

km0tfn4u2#

LinearRegression类需要一个2D数组作为predict方法的输入。因此,直接传递一个二维数组,如reg.predict([[3300]]),或者使用如下所示的整形函数对数组进行整形

reg.predict(np.array([3300]).reshape(-1, 1))

相关问题