Como imprimir el resultado del clustering en sklearn.

Tengo una matriz dispersa

from scipy.sparse import * M = csr_matrix((data_np, (rows_np, columns_np))); 

entonces estoy haciendo agrupamientos de esa manera

 from sklearn.cluster import KMeans km = KMeans(n_clusters=n, init='random', max_iter=100, n_init=1, verbose=1) km.fit(M) 

y mi pregunta es extremadamente noob: cómo imprimir el resultado de la agrupación sin ninguna información adicional. No me importa trazar ni distancias. Solo necesito filas agrupadas mirando de esa manera

 Cluster 1 row 1 row 2 row 3 Cluster 2 row 4 row 20 row 1000 ... 

¿Cómo puedo obtenerlo? Disculpe por esta pregunta.

Tiempo para ayudarme a mí mismo. Después

 km.fit(M) 

corremos

 labels = km.predict(M) 

que devuelve las tags , numpy.ndarray. El número de elementos en esta matriz es igual al número de filas. Y cada elemento significa que una fila pertenece al clúster. Por ejemplo: si el primer elemento es 5, significa que la fila 1 pertenece al clúster 5. Pongamos nuestras filas en un diccionario de listas de esta manera {cluster_number: [row1, row2, row3], …}

 # in row_dict we store actual meanings of rows, in my case it's russian words clusters = {} n = 0 for item in labels: if item in clusters: clusters[item].append(row_dict[n]) else: clusters[item] = [row_dict[n]] n +=1 

e imprimir el resultado

 for item in clusters: print "Cluster ", item for i in clusters[item]: print i