我在python中有一个变量(值可能会改变)
a = 6
现在取决于我必须从K-means clustering
生成6个群集的值
它为我提供了数组
y_km
Out[36]: array([2, 5, 5, 2, 5, 0, 0, 1, 1, 4, 3, 4, 1, 0, 2, 2])
cluster_0 = np.where(y_km == 0)
cluster_1 = np.where(y_km == 1)
cluster_2 = np.where(y_km == 2)
cluster_3 = np.where(y_km == 3)
cluster_4 = np.where(y_km == 4)
cluster_5 = np.where(y_km == 5)
然后我将数组中每个标签的位置存储到不同的变量中。我想自动执行此过程,以便我不必显式编写变量名称的代码(cluster_0,cluster_1,cluster_2...)
for i in range(a):
cluster_'%d'%i = np.where(y_km == i)
我在上面做,但这给了我语法错误。
然后我在数据框tsp_data_unique
tsp_data_unique['Clusters'] = 'Null'
然后我在跟踪以在数据帧中分配相应的群集标签。
tsp_data_unique['Clusters'].iloc[cluster_0] = 'Cluster 1'
tsp_data_unique['Clusters'].iloc[cluster_1] = 'Cluster 2'
tsp_data_unique['Clusters'].iloc[cluster_2] = 'Cluster 3'
tsp_data_unique['Clusters'].iloc[cluster_3] = 'Cluster 4'
tsp_data_unique['Clusters'].iloc[cluster_4] = 'Cluster 5'
tsp_data_unique['Clusters'].iloc[cluster_5] = 'Cluster 6'
我可以自动执行上述过程。
答案 0 :(得分:2)
通常最好只使用dict()
,然后制作动态变量名称'而是字典的键。你可以使用:
clusters = {}
for i in range(a):
clusters['cluster_{}'.format(i)] = np.where(y_km == i)
然后,您可以使用例如clusters['cluster_1']
。
答案 1 :(得分:2)
我建议您将群集存储在字典中: 代码就像:
clusters = dict()
for i in range(a):
clusters[i] = np.where(y_km == i)