在运行我的代码时,我得到了这个错误。
Expected 2D array, got 1D array instead我查了一下,我想我知道原因,但不确定如何修复它。我有一个二维数组作为源,但我需要获取特定列的数组进行处理。当我把列取出来的时候,二维数组变成了一维数组。
下面是我的代码:
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第一个print语句给出了以下内容:
[[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?
发布于 2020-03-28 05:06:34
当您在列上为数组编制索引时:
location = orginalDataframe.columns.get_loc(item)
dataframe[:, location]您只需在该索引上添加一个新轴,以确保通过reshape生成的数组是二维的
dataframe[:, location].reshape(-1, 1)下面是一个使用示例数组的示例,在对列进行索引的情况下:
a[:,3].reshape(-1, 1).shape
# (15, 1)结果是一个2D数组,如果我们在2列上建立索引:
a[:,[3,4]].reshape(-1,1).shape
# (30, 1)生成的数组也是2D数组
https://stackoverflow.com/questions/60894082
复制相似问题