Python 如何为一维和二维阵列强制二维形状

Python 如何为一维和二维阵列强制二维形状,python,pandas,numpy,scikit-learn,Python,Pandas,Numpy,Scikit Learn,我在运行代码时遇到此错误 Expected 2D array, got 1D array instead 我查了一下,我想我知道为什么,但不知道如何修复它。我有一个2D数组作为源,但我需要获取数组的特定列进行处理。当我取出列时,2D数组变成了1D数组 这是我的密码: print(dataframe) location = orginalDataframe.columns.get_loc(item) #get the location of the current numberi

我在运行代码时遇到此错误

Expected 2D array, got 1D array instead
我查了一下,我想我知道为什么,但不知道如何修复它。我有一个2D数组作为源,但我需要获取数组的特定列进行处理。当我取出列时,2D数组变成了1D数组

这是我的密码:

    print(dataframe)
    location = orginalDataframe.columns.get_loc(item) #get the location of the current numberic item
    print(dataframe[:, location])
    dataframe[item] = scaler.inverse_transform(dataframe[:,location]) #reverse previous transformation
第一份打印声明给了我以下信息:

[[0.96570218]
 [0.96570218]
 [1.        ]
 [1.        ]
 [0.86415196]
 [0.86415196]
 [0.82511791]
 [0.82511791]]
2D,但在执行
dataframe[:,location])
命令后,它会将其转换为:

[0.96570218 0.96570218 1.         1.         0.86415196 0.86415196
 0.82511791 0.82511791 0.91828023 0.91828023 0.76760661 0.76760661
 0.69375734 0.69375734 0.70177708 .. ]

在我当前的示例中,这里只有一列,但对于其他列,有多个列。无论有多少列,如何将列保持为2D?

当使用以下内容对列上的数组进行索引时:

location = orginalDataframe.columns.get_loc(item)
dataframe[:, location]
您只需在该索引上添加一个新轴,即可通过
重塑
确保生成的数组是二维的:

dataframe[:, location].reshape(-1, 1)
下面是一个使用示例数组的示例,在对列进行索引的情况下:

a[:,3].reshape(-1, 1).shape
# (15, 1)
结果是一个二维数组,如果我们在两列上建立索引:

a[:,[3,4]].reshape(-1,1).shape
# (30, 1)

结果数组也是2D的

它只有一个轴是的,它添加了一个@LostsoulIt只添加了一个新维度。你可以把它压缩回原来的形状@lostsoul谢谢你,我做了比较=dataArray==dataframe equal\u arrays=comparison.all()打印(equal\u arrays)。返回真值!谢谢