I was taking the Machine Learning course by Andrew Ng and in one of the practice labs, they perform this operation for Linear Regression.
x = np.arange(0, 20, 1)
y = 1 + x**2
X = x.reshape(-1, 1)
I checked out the shape of the arrays after the op
>>> print(x.shape,X.shape)
(20,) (20, 1)
What is the difference between x and X, and why can't we simply just use x.T instead of changing it to X ?