1、首先生成三个2×3矩阵a、b、c
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分别生成的矩阵是彼此的转置。