-2

Im made a code which deletes curse words but it says

ValueError: y should be a 1d array, got an array of shape (1, 375) instead.

As you can see i tried to reshape it but it didn`t work. And i wrote all of the error below the code.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns; sns.set()
from sklearn.datasets import make_blobs

import pandas as pd

df = pd.read_excel('data.xls')


def handle_non_numerical_data(df):
    columns = df.columns.values
    for column in columns:
        text_digit_vals = {}
        def convert_to_int(val):
            return text_digit_vals[val]

        if df[column].dtype != np.int64 and df[column].dtype != np.float64:
            column_contents = df[column].values.tolist()
            unique_elements = set(column_contents)
            x = 0
            for unique in unique_elements:
                if unique not in text_digit_vals:
                    text_digit_vals[unique] = x
                    x+=1

            df[column] = list(map(convert_to_int, df[column]))

    return df

df = handle_non_numerical_data(df)

X = df['str']
X = X.values.reshape(1, -1)

y = df['curse']
y = y.values.reshape(1,len(y))

plt.show()
from sklearn.naive_bayes import GaussianNB

model = GaussianNB()

model.fit(X,y)
rng = np.random.RandomState(0)

X_new=[-6,-14]+[14,18]*rng.rand(1000,2)

y_new=model.predict(X_new)
plt.scatter(X[:,0],X[:,1],c=y,s=50,cmap='RdBu')
lim = plt.axis()
plt.scatter(X_new[:,0],X_new[:,1],c=y_new,s=20,cmap='RdBu',alpha=0.2)
plt.axis(lim)
plt.show()

Traceback (most recent call last): File "C:\Users\pc1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\naive_bayes.py", line 207, in fit X, y = self._validate_data(X, y) File "C:\Users\pc1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\base.py", line 433, in _validate_data X, y = check_X_y(X, y, **check_params) File "C:\Users\pc1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py", line 63, in inner_f return f(*args, **kwargs) File "C:\Users\pc1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py", line 883, in check_X_y y = column_or_1d(y, warn=True) File "C:\Users\pc1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py", line 63, in inner_f return f(*args, **kwargs) File "C:\Users\pc1\AppData\Local\Programs\Python\Python39\lib\site-packages\sklearn\utils\validation.py", line 921, in column_or_1d raise ValueError( ValueError: y should be a 1d array, got an array of shape (1, 375) instead.

1 Answers1

1

you reshaped it to (1, n) which is 2d array. It expects to receive 1d array

Jenia Golbstein
  • 374
  • 2
  • 12