In [1]:
import numpy as np

In [2]:
a = np.arange(3)
print(a)


[0 1 2]

In [3]:
a_append = np.append(a, 3)
print(a_append)


[0 1 2 3]

In [4]:
print(a)


[0 1 2]

In [5]:
print(np.append(a, [3, 4, 5]))


[0 1 2 3 4 5]

In [6]:
print(np.append(a, np.arange(3, 6)))


[0 1 2 3 4 5]

In [7]:
print(np.append(-1, a))


[-1  0  1  2]

In [8]:
print(np.append([-3, -2, -1], a))


[-3 -2 -1  0  1  2]

In [9]:
print(np.append(np.arange(-3, 0), a))


[-3 -2 -1  0  1  2]

In [10]:
a_2d = np.arange(6).reshape(2, 3)
print(a_2d)


[[0 1 2]
 [3 4 5]]

In [11]:
print(np.append(a_2d, 10))


[ 0  1  2  3  4  5 10]

In [12]:
a_2d_ex = np.arange(6).reshape(2, 3) * 10
print(a_2d_ex)


[[ 0 10 20]
 [30 40 50]]

In [13]:
print(np.append(a_2d, a_2d_ex))


[ 0  1  2  3  4  5  0 10 20 30 40 50]

In [14]:
print(np.append(a_2d, a_2d_ex, axis=0))


[[ 0  1  2]
 [ 3  4  5]
 [ 0 10 20]
 [30 40 50]]

In [15]:
print(np.append(a_2d, a_2d_ex, axis=1))


[[ 0  1  2  0 10 20]
 [ 3  4  5 30 40 50]]

In [16]:
# print(np.append(a_2d, a_2d_ex, axis=2))
# AxisError: axis 2 is out of bounds for array of dimension 2

In [17]:
a_2d_ex2 = np.arange(2).reshape(1, 2) * 10
print(a_2d_ex2)


[[ 0 10]]

In [18]:
# print(np.append(a_2d, a_2d_ex2, axis=0))
# ValueError: all the input array dimensions except for the concatenation axis must match exactly

In [19]:
# print(np.append(a_2d, a_2d_ex2, axis=1))
# ValueError: all the input array dimensions except for the concatenation axis must match exactly

In [20]:
print(np.append(a_2d_ex, a_2d, axis=0))


[[ 0 10 20]
 [30 40 50]
 [ 0  1  2]
 [ 3  4  5]]

In [21]:
print(np.append(a_2d_ex, a_2d, axis=1))


[[ 0 10 20  0  1  2]
 [30 40 50  3  4  5]]

In [22]:
print(np.append(a_2d, [[0, 10, 20], [30, 40, 50]], axis=0))


[[ 0  1  2]
 [ 3  4  5]
 [ 0 10 20]
 [30 40 50]]

In [23]:
a_row_1d = np.arange(3) * 10
print(a_row_1d)


[ 0 10 20]

In [24]:
# print(np.append(a_2d, a_row_1d, axis=0))
# ValueError: all the input arrays must have same number of dimensions

In [25]:
a_row_2d = np.arange(3).reshape(1, 3) * 100
print(a_row_2d)


[[  0 100 200]]

In [26]:
print(np.append(a_2d, a_row_2d, axis=0))


[[  0   1   2]
 [  3   4   5]
 [  0 100 200]]

In [27]:
print(np.append(a_2d, a_row_1d.reshape(1, 3), axis=0))


[[ 0  1  2]
 [ 3  4  5]
 [ 0 10 20]]

In [28]:
a_col_1d = np.arange(2) * 10
print(a_col_1d)


[ 0 10]

In [29]:
# print(np.append(a_2d, a_col_1d, axis=1))
# ValueError: all the input arrays must have same number of dimensions

In [30]:
a_col_2d = np.arange(2).reshape(2, 1) * 100
print(a_col_2d)


[[  0]
 [100]]

In [31]:
print(np.append(a_2d, a_col_2d, axis=1))


[[  0   1   2   0]
 [  3   4   5 100]]

In [32]:
print(np.append(a_2d, a_col_1d.reshape(2, 1), axis=1))


[[ 0  1  2  0]
 [ 3  4  5 10]]

In [33]:
print(np.vstack([a_2d, a_row_1d]))


[[ 0  1  2]
 [ 3  4  5]
 [ 0 10 20]]

In [34]:
print(np.vstack([a_row_2d, a_2d, a_row_1d, [[0, -1, -2], [-3, -4, -5]]]))


[[  0 100 200]
 [  0   1   2]
 [  3   4   5]
 [  0  10  20]
 [  0  -1  -2]
 [ -3  -4  -5]]

In [35]:
# print(np.hstack([a_2d, a_col_1d]))
# ValueError: all the input arrays must have same number of dimensions

In [36]:
print(np.hstack([a_col_2d, a_2d, a_col_1d.reshape(2, 1), [[0, -1], [-2, -3]]]))


[[  0   0   1   2   0   0  -1]
 [100   3   4   5  10  -2  -3]]

In [37]:
a_3d = np.arange(12).reshape(2, 3, 2)
print(a_3d)


[[[ 0  1]
  [ 2  3]
  [ 4  5]]

 [[ 6  7]
  [ 8  9]
  [10 11]]]

In [38]:
print(np.append(a_3d, 100))


[  0   1   2   3   4   5   6   7   8   9  10  11 100]

In [39]:
a_3d_ex = np.arange(12).reshape(2, 3, 2) * 10
print(a_3d_ex)


[[[  0  10]
  [ 20  30]
  [ 40  50]]

 [[ 60  70]
  [ 80  90]
  [100 110]]]

In [40]:
print(a_3d_ex.shape)


(2, 3, 2)

In [41]:
print(np.append(a_3d, a_3d_ex, axis=0))


[[[  0   1]
  [  2   3]
  [  4   5]]

 [[  6   7]
  [  8   9]
  [ 10  11]]

 [[  0  10]
  [ 20  30]
  [ 40  50]]

 [[ 60  70]
  [ 80  90]
  [100 110]]]

In [42]:
print(np.append(a_3d, a_3d_ex, axis=0).shape)


(4, 3, 2)

In [43]:
print(np.append(a_3d, a_3d_ex, axis=1))


[[[  0   1]
  [  2   3]
  [  4   5]
  [  0  10]
  [ 20  30]
  [ 40  50]]

 [[  6   7]
  [  8   9]
  [ 10  11]
  [ 60  70]
  [ 80  90]
  [100 110]]]

In [44]:
print(np.append(a_3d, a_3d_ex, axis=1).shape)


(2, 6, 2)

In [45]:
print(np.append(a_3d, a_3d_ex, axis=2))


[[[  0   1   0  10]
  [  2   3  20  30]
  [  4   5  40  50]]

 [[  6   7  60  70]
  [  8   9  80  90]
  [ 10  11 100 110]]]

In [46]:
print(np.append(a_3d, a_3d_ex, axis=2).shape)


(2, 3, 4)

In [47]:
print(np.concatenate([a_3d_ex, a_3d, a_3d_ex], axis=2))


[[[  0  10   0   1   0  10]
  [ 20  30   2   3  20  30]
  [ 40  50   4   5  40  50]]

 [[ 60  70   6   7  60  70]
  [ 80  90   8   9  80  90]
  [100 110  10  11 100 110]]]