简单分层聚类统计方法python
下面 直接上代码
,
#输入数据
dis = a[:,3]
#count 表示距离段的总个数,value 表示区域中所有像素点的个数
MAXD = int(round(max(dis),-2))
INTERVAL = 1000
sec = MAXD/INTERVAL
value = len(dis)
datas ={}
out_sum = []
out_cnt = []
for m in range(0,MAXD+INTERVAL,INTERVAL):
con = []
dist_sum = []
dist_cnt = []
i = 0
for i in range(value):
if dis[i] >= m and dis[i] < m + INTERVAL:
con.append(dis[i])
# print(con)
else:
pass
data = {int(m / INTERVAL): con}
data[int(m/INTERVAL)] = con # 添加
datas[int(m / INTERVAL)] = con
# print(data)
# 统计存储该距离段0的深度值
dist_sum = sum(con)
# print(dist_sum)
# 统计该距离段深度值的总个数存储
dist_cnt = len(con)
# print(dist_cnt)
out_sum.append(dist_sum)
out_cnt.append(dist_cnt)
m = m + INTERVAL
# print(con)
print('***************输出分段结果**********************')
print(out_sum)
print(out_cnt)
print(datas)
#print(type(out))
print(type(datas))
# 求出每个距离段的深度值的个数 dist_cnt 占总像素点个数 value 的百分比;
print('********计算百分比,取出最大占比值******************')
per = []
for i in range(int(sec)):
num = out_cnt[i]
# print(num)
percent = num/sum(out_cnt)
print(percent)
per.append(percent)
per_max = max(per)
position = per.index(max(per)) # 最大值的位置
print(per_max,position)
print('*************输出目标结果********************')
obj_dis = out_sum[position] / out_cnt[position]
print(obj_dis)
``