如何在Python中垂直连接两个数组?
我想使用NumPy包在Python中垂直连接两个数组:如何在Python中垂直连接两个数组?,python,arrays,numpy,Python,Arrays,Numpy,我想使用NumPy包在Python中垂直连接两个数组: a = array([1,2,3,4]) b = array([5,6,7,8]) 我想要这样的东西: c = array([[1,2,3,4],[5,6,7,8]]) 我们如何使用串联函数来实现这一点?我检查了这两个函数,但结果相同: c = concatenate((a,b),axis=0) # or c = concatenate((a,b),axis=1) 我们在这两个功能中都有这一点: c = array([1,2,3,4,
a = array([1,2,3,4])
b = array([5,6,7,8])
我想要这样的东西:
c = array([[1,2,3,4],[5,6,7,8]])
我们如何使用串联
函数来实现这一点?我检查了这两个函数,但结果相同:
c = concatenate((a,b),axis=0)
# or
c = concatenate((a,b),axis=1)
我们在这两个功能中都有这一点:
c = array([1,2,3,4,5,6,7,8])
要使用
concatenate
,您需要制作a
和b
二维数组,而不是1D数组,如中所示
c = concatenate((atleast_2d(a), atleast_2d(b)))
或者,您可以简单地执行以下操作
c = array((a,b))
问题是
a
和b
都是一维数组,因此只有一个轴可以连接它们
相反,您可以使用(v表示垂直):
另外,row\u stack
是vstack
函数的别名:
>>> np.row_stack((a,b))
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
还值得注意的是,可以同时堆叠相同长度的多个阵列。例如,np.vstack((a,b,x,y))
将有四行
在引擎盖下,vstack
通过确保每个阵列至少有两个维度(使用至少\u 2D
)工作,然后调用连接
,在第一个轴(轴=0
)上连接这些阵列。使用:
也许这不是一个好的解决方案,但它是使代码正常工作的简单方法,只需添加重塑:
a = array([1,2,3,4])
b = array([5,6,7,8])
c = concatenate((a,b),axis=0).reshape((2,4))
print c
输出:
通常,如果有两个以上长度相同的阵列:
reshape((number_of_arrays, length_of_array))
谢谢你的回答。如何使用
数组
水平连接?是否仅用于垂直连接?@user2991243您可以使用轴
参数来控制要连接的轴,默认值为0
。
a = array([1,2,3,4])
b = array([5,6,7,8])
c = concatenate((a,b),axis=0).reshape((2,4))
print c
[[1 2 3 4]
[5 6 7 8]]
reshape((number_of_arrays, length_of_array))