slicing issues of three dimensions

import numpy as np
 
b = np.array([[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],
              [[13, 14, 15, 16], [17, 18, 19, 20], [21, 22, 23, 24]],
              [[25, 26, 27, 28], [29, 30, 31, 32], [33, 34, 35, 36]],
              ])
 
print(f'b is {b}')
print(b.shape)
b is [[[ 1  2  3  4]
  [ 5  6  7  8]
  [ 9 10 11 12]]

 [[13 14 15 16]
  [17 18 19 20]
  [21 22 23 24]]

 [[25 26 27 28]
  [29 30 31 32]
  [33 34 35 36]]]
(3, 3, 4)
print("b[0, ::],b[1, ::],b[-1, ::],b[0:2, ::]")
print("b[0, ::]",b[0, ::], b[0, ::].shape)
b[0, ::],b[1, ::],b[-1, ::],b[0:2, ::]
b[0, ::] [[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]] (3, 4)
print("b[1, ::]",b[1, ::], b[1, ::].shape)
b[1, ::] [[13 14 15 16]
 [17 18 19 20]
 [21 22 23 24]] (3, 4)
print("b[-1, ::]",b[-1, ::], b[-1, ::].shape)
b[-1, ::] [[25 26 27 28]
 [29 30 31 32]
 [33 34 35 36]] (3, 4)
print("b[0:2, ::]",b[0:2, ::], b[0:2, ::].shape)
b[0:2, ::] [[[ 1  2  3  4]
  [ 5  6  7  8]
  [ 9 10 11 12]]

 [[13 14 15 16]
  [17 18 19 20]
  [21 22 23 24]]] (2, 3, 4)
print("b[:, 0:],b[:, 1:],b[:, -1:],b[:, 0:2:]")
b[:, 0:],b[:, 1:],b[:, -1:],b[:, 0:2:]
print("b[:, 0:]",b[:, 0:], b[:, 0:].shape)
b[:, 0:] [[[ 1  2  3  4]
  [ 5  6  7  8]
  [ 9 10 11 12]]

 [[13 14 15 16]
  [17 18 19 20]
  [21 22 23 24]]

 [[25 26 27 28]
  [29 30 31 32]
  [33 34 35 36]]] (3, 3, 4)
print("b[:, 1:]",b[:, 1:], b[:, 1:].shape)
b[:, 1:] [[[ 5  6  7  8]
  [ 9 10 11 12]]

 [[17 18 19 20]
  [21 22 23 24]]

 [[29 30 31 32]
  [33 34 35 36]]] (3, 2, 4)
print("b[:, -1:]",b[:, -1:], b[:, -1:].shape)
b[:, -1:] [[[ 9 10 11 12]]

 [[21 22 23 24]]

 [[33 34 35 36]]] (3, 1, 4)
print("b[:, 0:2:]",b[:, 0:2:], b[:, 0:2:].shape)
b[:, 0:2:] [[[ 1  2  3  4]
  [ 5  6  7  8]]

 [[13 14 15 16]
  [17 18 19 20]]

 [[25 26 27 28]
  [29 30 31 32]]] (3, 2, 4)
print("b[::, 0],b[::, 1],b[::, -1],b[::, 0:2:]")
b[::, 0],b[::, 1],b[::, -1],b[::, 0:2:]
print("b[::, 0]",b[::, 0], b[::, 0].shape)
b[::, 0] [[ 1  2  3  4]
 [13 14 15 16]
 [25 26 27 28]] (3, 4)
print("b[::, 1]",b[::, 1], b[::, 1].shape)
b[::, 1] [[ 5  6  7  8]
 [17 18 19 20]
 [29 30 31 32]] (3, 4)
print("b[::, -1]",b[::, -1], b[::, -1].shape)
b[::, -1] [[ 9 10 11 12]
 [21 22 23 24]
 [33 34 35 36]] (3, 4)
print("b[::, 0:2:]",b[::, 0:2:], b[::, 0:2].shape)
b[::, 0:2:] [[[ 1  2  3  4]
  [ 5  6  7  8]]

 [[13 14 15 16]
  [17 18 19 20]]

 [[25 26 27 28]
  [29 30 31 32]]] (3, 2, 4)
print("b[:,:, 0],b[:,:, 1],b[:,:, -1],b[:,:, 0:2:]")
b[:,:, 0],b[:,:, 1],b[:,:, -1],b[:,:, 0:2:]
print("b[:, :, 0]",b[:, :, 0], b[:, :, 0].shape)
b[:, :, 0] [[ 1  5  9]
 [13 17 21]
 [25 29 33]] (3, 3)
print("b[:, :, 1]",b[:, :, 1], b[:, :, 1].shape)
b[:, :, 1] [[ 2  6 10]
 [14 18 22]
 [26 30 34]] (3, 3)
print("b[:, :, -1]",b[:, :, -1], b[:, :, -1].shape)
b[:, :, -1] [[ 4  8 12]
 [16 20 24]
 [28 32 36]] (3, 3)
print("b[:, :, ::-1]",b[:, :,::-1],b[:, :, ::-1].shape)
b[:, :, ::-1] [[[ 4  3  2  1]
  [ 8  7  6  5]
  [12 11 10  9]]

 [[16 15 14 13]
  [20 19 18 17]
  [24 23 22 21]]

 [[28 27 26 25]
  [32 31 30 29]
  [36 35 34 33]]] (3, 3, 4)