一:numpy
1.np.vstack()?
上下合并,对括号中的两个整体进行对应操作。

np.vstack().jpg
2.np.hstack()
左右合并,对括号中的两个整体进行对应操作。

np.hstack().jpg
3.np.concatenate()
你合并操作需要针对多个矩阵或序列时,借助concatenate函数。
axis参数很好的控制了矩阵的纵向或是横向打印。axis=0表示列合并,axis=1表示行合并。

np.concatenate().jpg
二:pandas
1.pd.concat()
(1)axis (合并方向)
函数默认axis=0,为列合并。

axis .jpg
(2)ignore_index (重置 index)
合并之后重置index,结果的index变0, 1, 2, 3, 4, 5, 6, 7, 8。

ignore_index.jpg
(3)join (合并方式)
函数默认join='outer'。此方式是依照column来做纵向合并,有相同的column上下合并在一起,其他独自的column个自成列,原本没有值的位置皆以NaN填充。

join='outer'
.jpg
join='inner',只有相同的column合并在一起,其他的会被抛弃。

join='inner'.jpg
(4)join_axes (依照 axes 合并)?

join_axes.jpg
2.pd.append()
append只有纵向合并,没有横向合并。

pd.append().jpg
3.pd.merge()
pandas中的merge和concat类似,但主要是用于两组有key column的数据,统一索引的数据. 通常也被用在Database的处理当中。
(1)依据一组key合并

一组key合并.jpg
(2)依据两组key合并?
合并时有4种方法how = ['left', 'right', 'outer', 'inner'],预设值how='inner'。

两组key合并.jpg
三:pytorch
1.torch.Cat()
dim=0,列上合并。dim=1,行上合并。

定义.jpg
dtype=torch.float,不然会报错

输出.jpg
2.torch.stack()

定义.jpg
dim=0

定义.jpg
输出了d1的第2,1,0维元素,我们可以清楚的看到当dim=0时候,torch.stack类似于torch.cat。我们可以看出,dim=0的作用其实就是把所有的d[i]拼接在了一起。简单的说,将A,B,C垂直拼接。

dim=0.jpg
dim=1

dim=1.jpg
dim=1的作用其实就是把ABC的d[i][i]拼接在了一起。也就是说将每个张量的相同位置的行向量拼接在一起。如A[1],B[1],C[1]=[4,5,6],[40,50,60],[400,500,600]
dim=2

dim=2,jpg
dim=2的作用其实就是把ABC的d[i][i][i]拼接在了一起。即将A,B,C三个张量的相同位置的元素拼接在一起。如A[1][1],B[1][1],C[1][1]=5,50,500
四:tensorflow
1.tf.concat()

tf.concat.jpg
tf.random.normal生成的是3维张量,[4,35,8]指每维度对应的个数。axis=0指对第一个维度即4和6进行合并,合并后shape为[10,35,8]。当二维时axis=0,axis=1即等于列,行合并。合并操作可以在任意的维度上进行,唯一的约束是非合并维度的长度必须一致。
2.tf.stack()
tf.concat 直接在现有维度上面合并数据,并不会创建新的维度。如果在合并数据时,希望创建一个新的维度,则需要使用tf.stack 。

tf.stack(),jpg
axis=0指新维度在原维度之前,合并后shape为[2,35,8],2指两个张量合并。tf.stack 也需要满足张量堆叠合并条件,它需要所有合并的张量shape 完全一致才可合并。
axis决定插入位置,具体如下。

插入位置.jpg