未知索引创建图形时出错



我试图在使用 PCA 和 k 后输出聚类图 - 表示使用以下代码进行聚类:

Mergory=Mergory.astype(np.float32)
scaler = StandardScaler()
scaler.fit(Mergory)
Mergory = scaler.transform(Mergory)
pca.fit(Mergory)
Mergory = pca.transform(Mergory)
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=3)
kmeans.fit(Mergory)
labels = kmeans.predict(Mergory)
centroids = kmeans.cluster_centers_

然后我尝试使用以下我在网上找到的编码在图表中获取输出:

fig = plt.figure(figsize=(5, 5))
colors = map(lambda x: colmap[x+1], labels)
plt.scatter(Mergory['hospitalizations_one_year'], Mergory['fried'], color=colors, alpha=0.5, edgecolor='k')
for idx, centroid in enumerate(centroids):
plt.scatter(*centroid, color=colmap[idx+1])
plt.show()

我收到此错误:

IndexError                                Traceback (most recent call last)
<ipython-input-26-da3a8ac504f4> in <module>
3 colors = map(lambda x: colmap[x+1], labels)
4 
----> 5 plt.scatter(Mergory['hospitalizations_one_year'], Mergory['fried'], color=colors, alpha=0.5, edgecolor='k')
6 for idx, centroid in enumerate(centroids):
7     plt.scatter(*centroid, color=colmap[idx+1])
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
<Figure size 360x360 with 0 Axes>

有谁知道解决这个问题或是什么原因造成的?

你把你的pd.DataFrame变成了一个np.array

Mergory = scaler.transform(Mergory)
pca.fit(Mergory)
Mergory = pca.transform(Mergory)

因此,您不能像这里那样在其上使用列索引:

Mergory['hospitalizations_one_year'], Mergory['fried']

此示例引发相同的错误:

import numpy as np
arr = np.random.rand(4, 4)
arr['col 1']

索引错误:只有整数、切片 (:(、省略号 (...(、numpy.newaxis (None( 和整数或布尔数组是有效的索引

最新更新