python:ValueError:x和y中的聚类分析必须具有相同的大小

python:ValueError:x和y中的聚类分析必须具有相同的大小,python,matplotlib,scikit-learn,Python,Matplotlib,Scikit Learn,我尝试了以下代码,但在执行时,它显示以下错误: (ValueError:x和y的大小必须相同) 代码: import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans df1=pd.read_excel('F:/Test PCA/Week-7-MachineLearning/weath

我尝试了以下代码,但在执行时,它显示以下错误:

(ValueError:x和y的大小必须相同)

代码:

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans


df1=pd.read_excel('F:/Test PCA/Week-7-MachineLearning/weather_V2.xlsx',sheetname='Sheet1', header=0,)

df=df1.dropna();

del df['rain_accumulation']; del df['rain_duration']
features=['air_pressure', 'air_temp', 'avg_wind_direction', 'avg_wind_speed', 'max_wind_direction',
    'max_wind_speed','relative_humidity']

select_df=df[features]; #print select_df.air_pressure

x=StandardScaler().fit_transform(select_df)

Kmeans=KMeans(n_clusters=12)
Model=Kmeans.fit(x);  #print Model
y_kmeans = Kmeans.predict(x)

data_labels=Kmeans.labels_;
centers=Model.cluster_centers_

plt.scatter(x[:, 0], x[:, 1], c=y_kmeans, s=50, cmap='viridis')
plt.scatter(centers[:0], centers[:1], color ='k')
plt.show()

这行中缺少逗号:

plt.scatter(centers[:0], centers[:1], color ='k')
所以散点图被大小不同的阵列搞混了:

In [34]: centers[:0].shape
Out[34]: (0, 7)

In [35]: centers[:1].shape
Out[35]: (1, 7)
应该是:

plt.scatter(centers[:, 0], centers[:, 1], color ='k', s=100)
结果:


这行中缺少逗号:

plt.scatter(centers[:0], centers[:1], color ='k')
所以散点图被大小不同的阵列搞混了:

In [34]: centers[:0].shape
Out[34]: (0, 7)

In [35]: centers[:1].shape
Out[35]: (1, 7)
应该是:

plt.scatter(centers[:, 0], centers[:, 1], color ='k', s=100)
结果:


我在您的代码中没有看到y并提供详细的回溯。@AkshayNevrekar:x[:,1]是您在plt.scatter中看到的y。我在您的代码中没有看到y并提供详细的回溯。@AkshayNevrekar:x[:,1]是您在plt.scatter中看到的y。非常感谢,MaxU。这帮了大忙。@Vanna,很高兴我能帮上忙:)非常感谢,MaxU。这帮了大忙。@Vanna,很高兴我能帮上忙:)