concatenation vs stack

In short, concatenation merges vectors or matrice without introducing new dimensions. At the opposite side, stack increases the dimensionality, for example, stacking two vector will create a 2-dimensional matrix, stacking two matrices will make a 3-dimensional tensor.

Numpy

Vector concatenation: If we want to extend a longer vector by doging \( c= a + b \), we can use the np.concatenate function. NB: setting axis=1 is not permitted for a vector which only has a single dimension.

a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.concatenate([a,b], axis=0) # axis must be in [-1,0]

>>> c
array([1, 2, 3, 4, 5, 6])

Pytorch

In pytorch, the API is called torch.cat instead of np.concatenate, and the dimension is called dim instead of axis .

aa = torch.Tensor([1,2,3])
bb = torch.Tensor([4,5,6])
cc = torch.cat([aa,bb], dim=0) # dim must be in [-1,0]

>>> cc
tensor([1., 2., 3., 4., 5., 6.])