首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对一维阵列和二维阵列强制使用二维形状

问如何对一维阵列和二维阵列强制使用二维形状
EN

Stack Overflow用户
提问于 2020-03-28 05:02:23
回答 1查看 45关注 0票数 1

在运行我的代码时,我得到了这个错误。

代码语言:javascript
复制
Expected 2D array, got 1D array instead

我查了一下,我想我知道原因,但不确定如何修复它。我有一个二维数组作为源,但我需要获取特定列的数组进行处理。当我把列取出来的时候,二维数组变成了一维数组。

下面是我的代码:

代码语言:javascript
复制
    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语句给出了以下内容:

代码语言:javascript
复制
[[0.96570218]
 [0.96570218]
 [1.        ]
 [1.        ]
 [0.86415196]
 [0.86415196]
 [0.82511791]
 [0.82511791]]

2D,但在我执行dataframe[:, location])命令后,它会变成这样:

代码语言:javascript
复制
[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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-28 05:06:34

当您在列上为数组编制索引时:

代码语言:javascript
复制
location = orginalDataframe.columns.get_loc(item)
dataframe[:, location]

您只需在该索引上添加一个新轴,以确保通过reshape生成的数组是二维的

代码语言:javascript
复制
dataframe[:, location].reshape(-1, 1)

下面是一个使用示例数组的示例,在对列进行索引的情况下:

代码语言:javascript
复制
a[:,3].reshape(-1, 1).shape
# (15, 1)

结果是一个2D数组,如果我们在2列上建立索引:

代码语言:javascript
复制
a[:,[3,4]].reshape(-1,1).shape
# (30, 1)

生成的数组也是2D数组

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60894082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档