#python #pandas #sklearn-pandas
Вопрос:
Я создал код, который удаляет ругательства, но в нем говорится
Ошибка значения: y должен быть массивом 1d, вместо этого получил массив формы (1, 375).
Как вы можете видеть, я пытался изменить его, но это не сработало. И я написал все ошибки ниже кода.
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()
Обратная связь (последний последний звонок):
Файл «C:Userspc1AppDataLocalProgramsPythonPython39libsite-packagessklearnnaive_bayes.py», строка 207, в соответствии
X, y = self._validate_data(X, y)
Файл «C:Userspc1AppDataLocalProgramsPythonPython39libsite-packagessklearnbase.py», строка 433, в _validate_data
X, y = check_X_y(X, y, **параметры проверки)
Файл «C:Userspc1AppDataLocalProgramsPythonPython39libsite-packagessklearnutilsvalidation.py», строка 63, в inner_f
возвращает f(*аргументы, **кварги)
Файл «C:Userspc1AppDataLocalProgramsPythonPython39libsite-packagessklearnutilsvalidation.py», строка 883, в столбце check_X_y
y = column_or_1d(y, предупреждение=True)
Файл «C:Userspc1AppDataLocalProgramsPythonPython39libsite-packagessklearnutilsvalidation.py», строка 63, в inner_f
возвращает f(*аргументы, **кварги)
Файл «C:Userspc1AppDataLocalProgramsPythonPython39libsite-packagessklearnutilsvalidation.py», строка 921, в столбце_or_1d ошибка
повышения значения(
Ошибка значения: y должен быть массивом 1d, вместо этого получил массив формы (1, 375).
Ответ №1:
вы изменили его на (1, n), который является 2d-массивом. Он ожидает получить массив 1d