将2d的numpy数组转换为1d的numpy数组

时间:2019-12-14 07:33:55

标签: python numpy numpy-ndarray numpy-slicing

美好的一天,我试图通过调用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),即列将变为行。 任何有用的解决方案将不胜感激。 谢谢。

0 个答案:

没有答案