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)。返回真值!谢谢