Transpose vs Flatten

import numpy as np
a = np.array([5,4])[np.newaxis]
a
array([[5, 4]])
a.shape
(1, 2)
b = a.T
b
array([[5],
       [4]])
c = np.array([
    [1, 2],
    [1, 4],
    [4, 5]
])
c
array([[1, 2],
       [1, 4],
       [4, 5]])
c.shape
(3, 2)
d = c.T
d
array([[1, 1, 4],
       [2, 4, 5]])
e = c.flatten()
e
array([1, 2, 1, 4, 4, 5])
e.shape
(6,)
e.ndim
1
c.ndim
2