Getting exception Exception: Data must be 1-dimensional
using NumPy in Python 3.7
Same code is working for others but not in my case. Bellow is my code please help
Working_code_in_diff_system
Same_code_not_working_in_my_system
import numpy as np
from sklearn import linear_model
from sklearn.model_selection import train_test_split
import seaborn as sns
from sklearn import metrics
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.read_csv('./Data/new-data.csv', index_col=False)
x_train, x_test, y_train, y_test = train_test_split(df['Hours'], df['Marks'], test_size=0.2, random_state=42)
sns.jointplot(x=df['Hours'], y=df['Marks'], data=df, kind='reg')
x_train = np.reshape(x_train, (-1,1))
x_test = np.reshape(x_test, (-1,1))
y_train = np.reshape(y_train, (-1,1))
y_test = np.reshape(y_test, (-1,1))
#
print('Train - Predictors shape', x_train.shape)
print('Test - Predictors shape', x_test.shape)
print('Train - Target shape', y_train.shape)
print('Test - Target shape', y_test.shape)
Expected output should be
Train - Predictors shape (80, 1)
Test - Predictors shape (20, 1)
Train - Target shape (80, 1)
Test - Target shape (20, 1)
As output getting exception Exception: Data must be 1-dimensional
I think you need to call np.reshape on the underlying numpy array rather than on the Pandas series - you can do this using .values:
x_train = np.reshape(x_train.values, (-1, 1))
Repeat the same idea for the next three lines.
Or, if you are on a recent version of Pandas >= 0.24, to_numpy is preferred:
x_train = np.reshape(x_train.to_numpy(), (-1, 1))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With