在python中,如何根据标签按输出分组
我正在尝试按标签获取我的以下结果:在python中,如何根据标签按输出分组,python,pandas-groupby,Python,Pandas Groupby,我正在尝试按标签获取我的以下结果: kmeans = KMeans(n_clusters=5) kmeans.fit(X) centroid = kmeans.cluster_centers_ labels = kmeans.labels_ print (centroid) print(labels) for i in range(len(X)): print ("coordinate:" , X[i], "label:", labels[i]
kmeans = KMeans(n_clusters=5)
kmeans.fit(X)
centroid = kmeans.cluster_centers_
labels = kmeans.labels_
print (centroid)
print(labels)
for i in range(len(X)):
print ("coordinate:" , X[i], "label:", labels[i])
coordinate: [30.5 16.7] label: 2
coordinate: [31.3 21.8] label: 3
coordinate: [34. 17.9] label: 3
coordinate: [33.2 13.8] label: 2
coordinate: [35.9 18.9] label: 3
coordinate: [38.2 19.7] label: 0
coordinate: [36.6 19.8] label: 3
coordinate: [37.3 18.6] label: 0
coordinate: [33.8 21.5] label: 3
coordinate: [34.4 21.2] label: 3
coordinate: [32.1 18.9] label: 3
coordinate: [36.9 22.1] label: 3
coordinate: [31. 24.3] label: 3
coordinate: [32.6 21.8] label: 3
coordinate: [33.2 20.7] label: 3
coordinate: [35.5 0. ] label: 2
coordinate: [47.8 21.4] label: 1
这给了我以下的结果:
kmeans = KMeans(n_clusters=5)
kmeans.fit(X)
centroid = kmeans.cluster_centers_
labels = kmeans.labels_
print (centroid)
print(labels)
for i in range(len(X)):
print ("coordinate:" , X[i], "label:", labels[i])
coordinate: [30.5 16.7] label: 2
coordinate: [31.3 21.8] label: 3
coordinate: [34. 17.9] label: 3
coordinate: [33.2 13.8] label: 2
coordinate: [35.9 18.9] label: 3
coordinate: [38.2 19.7] label: 0
coordinate: [36.6 19.8] label: 3
coordinate: [37.3 18.6] label: 0
coordinate: [33.8 21.5] label: 3
coordinate: [34.4 21.2] label: 3
coordinate: [32.1 18.9] label: 3
coordinate: [36.9 22.1] label: 3
coordinate: [31. 24.3] label: 3
coordinate: [32.6 21.8] label: 3
coordinate: [33.2 20.7] label: 3
coordinate: [35.5 0. ] label: 2
coordinate: [47.8 21.4] label: 1
如何按标签0,1,2,3,4获取组
非常感谢您可以使用它获得想要的积分
范围(5)内的类的:
打印(f“类:{Class}:”)
打印(X[labels==class_389;])
它看起来像:
Class: 0:
[[-1.37195659 3.29604478]
[-1.4811455 2.73069841]
[-2.41468976 0.93708579]
[-0.49772229 1.55128226]]
Class: 1:
[[ 7.65935736 -2.5439099 ]
[ 8.02045985 -1.55367927]
[ 8.76360303 -2.76924393]
[ 7.56698502 -0.38039423]]
Class: 2:
[[1.42013331 4.63746165]
[1.7373078 4.42546234]
[1.12031365 5.75806083]
[2.47034915 4.09862906]
[0.0058752 4.38724103]]
Class: 3:
[[-1.63558259 7.53315727]
[-1.59616792 7.99180898]
[-0.01796509 9.03783986]
[-2.29680874 6.41544208]]
Class: 4:
[[ 2.91970372 0.15549864]
[ 4.32502215 -0.55670201]
[ 2.36833522 0.04356792]]
因此,如果要对点进行分组,可以像
{class_ux:labels==class_ux]用于范围(5)内的class_ux}
这是我试过的完整代码
从sklearn.cluster导入KMeans
从sklearn.dataset导入make_blob
#创建随机数据集
十、 _u=make_blob(n_样本=20,中心=5,n_特征=2,
随机_状态=0)
#拟合数据
kmeans=kmeans(n_集群=5)
kmeans.fit(X)
#从kmeans获取中心和标签
中心=kmeans.cluster\u中心_
labels=kmeans.labels_
对于范围(5)内的类:
打印(f“类:{Class}:”)
打印(X[labels==class_389;])
你好,贾斯汀,谢谢。