美好的一天,我试图通过调用numpy.polyfit()进行回归分析,但是我在x变量上碰到了一维尺寸错误,该变量恰好有13列和506行。 我能够将x变量从数据帧转换为numpy数组,但形状仍为2D。在我可以对数据集运行polyfit之前,x变量必须为一维形状。我检查了类似的问题,但似乎没有一个答案。
下面是我的代码:
import numpy
y=house.iloc[:,-1]
#x=house.iloc[:,1:13]
#x=x.to_numpy()
numpy.polyfit(x,y,deg=1)
下面是x个变量的形状
x.shape
(506,12)
下面是错误消息:
551 raise ValueError("expected deg >= 0")
552 if x.ndim != 1:
-> 553提高TypeError(“ x的预期1D向量”)
554 if x.size == 0:
555 raise TypeError("expected non-empty vector for x")
TypeError:x的预期一维向量
当我尝试重塑形状时,我得到了以下格式的数组:
array([[65.2,396.9,0.,...,15.3,1.,6.575],
[ 78.9 , 396.9 , 0. , ..., 17.8 , 2. , 6.421],
[ 45.8 , 394.63 , 0. , ..., 18.7 , 3. , 6.998],
[ 89.3 , 393.45 , 0. , ..., 21. , 1. , 6.794]])
我希望当我打电话给x的时候。形状,我应该得到(12),即列将变为行。 任何有用的解决方案将不胜感激。 谢谢。