Войти
или
Зарегистрироваться
Курсы
Учебник
Учебник 2.0
ОГЭ/ЕГЭ
Олимпиады
Рубрикатор
Компилятор
Статья Автор:
Глумов Михаил
27 кластеризация
with open('27-20a.txt') as f: f.readline() cluster1,cluster2=[],[] for i in f: x,y=map(float,i.replace(',','.').split()) if x>1.05: cluster1.append((x,y)) if x<1.05: cluster2.append((x,y)) def centroid(cluster): x_centr , y_centr , minim = 0, 0, 10**100 for i in range(len(cluster)): res=0 for j in range(len(cluster)): x1, y1 = cluster[i] x2, y2 = cluster[j] res += ((x2-x1)**2 + (y2-y1)**2)**0.5 if res<minim: minim=res x_centr,y_centr=x1,y1 return x_centr, y_centr x1,y1=centroid(cluster1) x2,y2=centroid(cluster2) print((x1+x2)/2 * 10000, (y1+y2)/2 * 10000) with open('27-20b.txt') as f: f.readline() cluster1,cluster2,cluster3=[],[],[] for i in f: x,y=map(float,i.replace(',','.').split()) if y>0.7 and x<8.1: cluster1.append((x,y)) elif y<-(4/9.3)*x + 4: cluster2.append((x,y)) else: cluster3.append((x,y)) def centroid(cluster): x_centr , y_centr , minim = 0, 0, 10**100 for i in range(len(cluster)): res=0 for j in range(len(cluster)): x1, y1 = cluster[i] x2, y2 = cluster[j] res += ((x2-x1)**2 + (y2-y1)**2)**0.5 if res<minim: minim=res x_centr,y_centr=x1,y1 return x_centr, y_centr x1,y1=centroid(cluster1) x2,y2=centroid(cluster2) x3,y3=centroid(cluster3) print((x1+x2+x3)/3 * 10000, (y1+y2+y3)/3 * 10000)
×
Чтобы оставить комментарий нужна авторизация
Печать