numpy数组元素的拼接(concatenate)

numpy.concatenate((a1, a2, …), axis=0)

官方文档

把数组a1,a2…沿着axis维度进行切片然后拼接到一起

参数含义:

a1,a2,…: 是待拼接的数组,二者的shape除了axis维度外,在其他维度应该相等
axis: 指定在哪个axis上进行切片并拼接

示例: 把一个 1 × 3 1\times3 1×3的ndarray拼接在 3 × 3 3\times3 3×3的array下方

随机生成两个矩阵

>>>import numpy as np
>>>a=np.random.randint(1,9,size=9).reshape((3,3))
>>>print(a)
[[5 8 5]
 [4 8 6]
 [8 6 4]]
>>>b=np.random.randint(1,9,size=3)
>>>print(b)
[5 3 7]

concatenate函数要求两个数组要有同样数量的维度(all the input arrays must have same number of dimensions),而此时a.shape为(3,3),所以a是2维的,b.shape为(3,),b是1维的

expand_dims来把b.shape变成(1,3),添加一个维度,使b变成2

>>>b=np.expand_dims(b,axis=0)
>>>b
array([[5, 3, 7]])
>>>b.shape
(1, 3)

b作为新的一行拼接在a的下方,此时是行数增加,是把每一行看成一个单元,沿着 axis 0 进行切片并拼接,所以:

>>>np.concatenate((a,b),axis=0) 
array([[5, 8, 5],
       [4, 8, 6],
       [8, 6, 4],
       [5, 3, 7]])

如要把b拼接在a的右侧,此时是列数增加,把每一列看成一个单元,沿着 axis 1 进行切片并拼接,所以:

>>>np.concatenate((a,b.T),axis=1)
array([[5, 8, 5, 5],
       [4, 8, 6, 3],
       [8, 6, 4, 7]])

用append函数也可以实现类似功能,请参见下期博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值