程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

垂直连接两个NumPy数组

发布于2019-08-24 14:38     阅读(794)     评论(0)     点赞(30)     收藏(0)


我尝试了以下方法:

>>> 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])

但是,我希望至少有一个结果看起来像这样

array([[1, 2, 3],
       [4, 5, 6]])

为什么它没有垂直连接?


解决方案


因为这两个ab仅具有一个轴线,因为它们的形状是(3),轴参数具体是指以连接元件的轴。

这个例子应该说明concatenate用轴做什么取两个带两个轴的矢量,形状为(2,3)

a = np.array([[1,5,9], [2,6,10]])
b = np.array([[3,7,11], [4,8,12]])

沿第1轴连接(第1行,第2行):

np.concatenate((a,b), axis=0)
array([[ 1,  5,  9],
       [ 2,  6, 10],
       [ 3,  7, 11],
       [ 4,  8, 12]])

沿第二轴连接(第1列的列,然后是第2列的列):

np.concatenate((a, b), axis=1)
array([[ 1,  5,  9,  3,  7, 11],
       [ 2,  6, 10,  4,  8, 12]])

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

a = np.array([1,2,3])
b = np.array([4,5,6])
np.vstack((a, b))
array([[1, 2, 3],
       [4, 5, 6]])

你仍然可以使用它concatenate,但你需要首先重塑它们:

np.concatenate((a.reshape(1,3), b.reshape(1,3)))
array([[1, 2, 3],
       [4, 5, 6]])

最后,正如评论中所提出的,重塑它们的一种方法是使用newaxis

np.concatenate((a[np.newaxis,:], b[np.newaxis,:]))


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/57055/eeacbda5e8c7d99e06f0/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)