Стандартная посадка. Результаты в неупорядоченных центрах.
import numpy as np
from sklearn.cluster import KMeans
means = KMeans(n_clusters=3,random_state=3425)
cB0 = means.fit_predict(np.arange(100).reshape(-1, 1))
print(cB0)
вывод:
[2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]
Использование
ord_idx=np.argsort(means.cluster_centers_.flatten())
cntrs = np.zeros_like(cB0)-1
for i in np.arange(3):
cntrs[cB0==ord_idx[i]]=i
print(cntrs)
вывод:
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2]