关于np.stack/hstack/vstack/及axis的结果分析

本文分析了numpy中的np.stack、hstack和vstack函数在处理矩阵时的不同行为,以及如何根据axis参数改变堆叠方式。通过实例展示了水平堆叠(hstack)和垂直堆叠(vstack)的操作,以及np.stack在不同axis值下如何沿新轴合并矩阵。总结了记忆这些操作的方法,强调了axis参数对结果的影响。
摘要由CSDN通过智能技术生成

1、首先生成三个2×3矩阵a、b、c
生成三个2×3矩阵
2、对矩阵a、b、c进行如下操作,分别得到d、e、f、g、h
对它们分别进行这些操作
3、分别进行分析:
3.1 np.hstack((a,b,c)):水平堆叠序列中的数组(列方向)
将a,b,c三个矩阵横向连接起来,即每个矩阵的第i行直接拼成新矩阵的i行,所以生成的新矩阵行数与原矩阵相同,列数是原矩阵的列数之和。在这里插入图片描述
3.2 np.vstack((a,b,c)):竖直堆叠序列中的数组(行方向)
将a,b,c三个矩阵竖向连接起来,即每个矩阵的第i列直接拼接成新矩阵的第i列,所以生成的新矩阵列数与原矩阵相同,行数是原矩阵的行数之和。
在这里插入图片描述
3.3 np.stack((a,b,c),axis=0): 沿着新的轴加入一系列数组。
沿着最外层轴进行合并,将里面1轴,二轴的数据作为整体进行对应位置的合并
在这里插入图片描述

3.4 np.stack((a,b,c),axis=1):根据内层的1轴数据进行叠加合并
在这里插入图片描述

3.5 np.stack((a,b,c),axis=2)根据内层的2轴数据进行叠加合并
在这里插入图片描述
4、记忆方式:
按照老师上课时讲过的数方括号[]的思路方向看的话,可以大致这样记忆,axis=0时,去掉0个方括号,进行堆叠,此时三个矩阵仍然是三个独立的矩阵,故无变化;axis=1时,去掉1个方括号,则矩阵被拆分成列向量,进行从三个矩阵中抽出第i行进行堆叠,原矩阵的个数与新矩阵的行数相等,原矩阵的行数与新矩阵的个数相等;axis=2时,去掉两个方括号,则矩阵被拆分成若干独立的数字,再进行组合成新的矩阵,原矩阵的个数与新矩阵的列数相等,原矩阵的列数与新矩阵的行数相等。而且axis=1和axis=2分别生成的矩阵是彼此的转置。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值