首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用numpy的hstack?

如何使用numpy的hstack?
EN

Stack Overflow用户
提问于 2013-11-20 00:43:38
回答 3查看 16.2K关注 0票数 10

我有一个很大的numpy.ndarray数组,我想从中提取出第4列和第5列,并将这些列放入一个2D数组中。i,0元素应该是第4列的值,而i,1应该是第5列的元素。

我尝试使用numpy.hstack函数来完成此操作。

代码语言:javascript
复制
a = numpy.asarray([1, 2, 3, 4, 5])
for i in range(5):
    a = numpy.vstack([a, numpy.asarray([1, 2, 3, 4, 5])])

combined = np.hstack([a[:,3], a[:,4]])

但是,这只给了我一个nx1数组。我已经尝试了多种使用连接的方法,如下所示:

代码语言:javascript
复制
combined = np.concatenate([a[:,3], a[:,4]])

combined = np.concatenate([a[:,3], a[:,4]], axis=1)

combined = np.concatenate([a[:,3].T, a[:,4].T])

我觉得hstack就是我想要的函数,但我似乎想不出如何让它给我一个nx2数组。有谁能给我指个方向吗?任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-20 00:49:49

我认为这将会做你想要的:

代码语言:javascript
复制
a[:,[3,4]]
票数 3
EN

Stack Overflow用户

发布于 2013-11-20 00:52:00

只需按如下方式切出您的数据:

代码语言:javascript
复制
X = [[0 1 2 3 4]
     [0 1 2 3 4]
     [0 1 2 3 4]
     [0 1 2 3 4]]

slicedX = X[:,3:5]

结果如下:

代码语言:javascript
复制
[[3 4]
 [3 4]
 [3 4]
 [3 4]]
票数 4
EN

Stack Overflow用户

发布于 2013-11-20 00:51:56

您也可以使用zip

代码语言:javascript
复制
>>> c = numpy.array( zip( a[:, 3], a[:, 4]) )
>>> c
array([[4, 5],
       [4, 5],
       [4, 5],
       [4, 5],
       [4, 5],
       [4, 5]])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20077146

复制
相关文章

相似问题

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