Python numpy使用记录6.numpy拼接操作,concatenate,stack,hstack,vstack,c_,h_

Python numpy使用记录6.几种行列操作,concatenate,stack,hstack,vstack,c_,h_

前言

本篇记录一下numpy中常用的几种拼接方法。

示例代码

直接上示例:

import numpy as np

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

c=np.concatenate([a,b], axis=0)
d=np.concatenate([a,b], axis=1)

e=np.stack([a,b], axis=0)
f=np.stack([a,b], axis=1)
g=np.stack([a,b], axis=2)

h=np.hstack([a,b])
i=np.vstack([a,b])

j=np.c_[a,b]
k=np.r_[a,b]
'''
c
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
 
d
[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]
 
e 
[[[ 1  2  3]
  [ 4  5  6]]
 [[ 7  8  9]
  [10 11 12]]]

f  
[[[ 1  2  3]
  [ 7  8  9]]
 [[ 4  5  6]
  [10 11 12]]]

g
[[[ 1  7]
  [ 2  8]
  [ 3  9]]
 [[ 4 10]
  [ 5 11]
  [ 6 12]]]

h
[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]
 
i 
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
 
j 
[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]
 
k
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
'''

api解释

拼接操作要求数组shape相同,以列表[a,b]或者元组(a,b)作为参数。

下面简要分析:
np.concatenate用于数组a,b拼接,拼接结果c,d数组dim=2,与用于拼接的a,b数组dim相同,直观的看像是把数组b的某个维度的元素塞到a对应的维度中。

np.stack用于a,b堆叠,堆叠结果e,f,g数组dim=3,多了一维。直观看是把数组a,b对应的axis用括号括起来。比如axis=1,就是把a,b的第一行括起来,第二行括起来,axis=1表示按行堆叠。

np.hstack用于横向堆叠,效果与np.concatenate([a, b], axis=1)效果相同,沿着第二维拼接。
np.vstack用于纵向堆叠,效果与np.concatenate([a, b], axis=0)效果相同,沿着第一维拼接;如果a,b是一维shape=(N,),则先添加a,b维度到shape=(1, N)再拼接,与np.stack([a, b], axis=0)相同
np.c_

np.r_[]用于行堆叠,与np.hstack效果相同。
np.c_[]用于列堆叠,与np.vstack效果相同。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值