- Why the shape of the matrix ‘
**b**’ is shown as**(3, )**when actually it is a 3x1 matrix? - Why do we have to use
**b.reshape(3, 1)**when it is already a 3x1 matrix?

When b is shown as (3,) it is a 1D array without knowing whether it is a row vector or a column vector. The reshape function helps to specify b to be a 2-D array representing a column vector.

Here is a thread about 1D vs 2D arrays