首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >垂直连接两个NumPy数组

垂直连接两个NumPy数组
EN

Stack Overflow用户
提问于 2014-02-19 17:22:08
回答 4查看 238.5K关注 0票数 85

我尝试了以下几点:

代码语言:javascript
复制
>>> a = np.array([1,2,3])
>>> b = np.array([4,5,6])
>>> np.concatenate((a,b), axis=0)
array([1, 2, 3, 4, 5, 6])
>>> np.concatenate((a,b), axis=1)
array([1, 2, 3, 4, 5, 6])

然而,我希望至少有一个结果是这样的

代码语言:javascript
复制
array([[1, 2, 3],
       [4, 5, 6]])

为什么不垂直连在一起?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-02-19 17:42:18

因为ab都只有一个轴,因为它们的形状是(3),而axis参数具体地引用要连接的元素的轴。

这个例子应该说明concatenate是如何处理axis的。取两个两轴的矢量,形状为(2,3)

代码语言:javascript
复制
a = np.array([[1,5,9], [2,6,10]])
b = np.array([[3,7,11], [4,8,12]])

沿着第一轴连接(第1行,然后第2行):

代码语言:javascript
复制
np.concatenate((a,b), axis=0)
array([[ 1,  5,  9],
       [ 2,  6, 10],
       [ 3,  7, 11],
       [ 4,  8, 12]])

沿着第二轴连接(第一列,然后第二列):

代码语言:javascript
复制
np.concatenate((a, b), axis=1)
array([[ 1,  5,  9,  3,  7, 11],
       [ 2,  6, 10,  4,  8, 12]])

要获得您提供的输出,可以使用vstack

代码语言:javascript
复制
a = np.array([1,2,3])
b = np.array([4,5,6])
np.vstack((a, b))
array([[1, 2, 3],
       [4, 5, 6]])

您仍然可以使用concatenate完成这一任务,但是您需要首先重塑它们:

代码语言:javascript
复制
np.concatenate((a.reshape(1,3), b.reshape(1,3)))
array([[1, 2, 3],
       [4, 5, 6]])

最后,正如注释中所建议的,重塑它们的一种方法是使用newaxis

代码语言:javascript
复制
np.concatenate((a[np.newaxis,:], b[np.newaxis,:]))
票数 106
EN

Stack Overflow用户

发布于 2017-04-12 14:05:54

如果手头的实际问题是垂直连接两个一维数组,并且我们不专注于使用concatenate执行此操作,那么我建议使用np.column

代码语言:javascript
复制
In []: a = np.array([1,2,3])
In []: b = np.array([4,5,6])
In []: np.column_stack((a, b))
array([[1, 4],
       [2, 5],
       [3, 6]])
票数 34
EN

Stack Overflow用户

发布于 2015-04-28 07:31:16

numpy的一个不知名的特性是使用r_。这是一种快速构建数组的简单方法:

代码语言:javascript
复制
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.r_[a[None,:],b[None,:]]
print(c)
#[[1 2 3]
# [4 5 6]]

a[None,:]的目的是向数组a中添加一个轴。

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

https://stackoverflow.com/questions/21887754

复制
相关文章

相似问题

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