Linear regression .predict method

I want to understand why does the predict() method in linear regression expects a 2 D array? I do understand how to apply it and not sure of the explanation behind it?

I do understand that these lines of code provides different outputs: but why is that necessary?
X_future = np.array(range(2013, 2050))
X_future = X_future.reshape(-1,1)