描述:在二维平面上有k(编号为0~k-1)个点,请找出这k个点中离质心最近点的编号。质心,就是指其横坐标,纵坐标分别为k个点的横坐标平均值,纵坐标平均值的点,如果存在到质心距离相同的点,则返回编号小的点的编号
示例:
输入:[“1,1”,“2,2”,“1,2”,“1,3”]
输出:2
def find_clear_point(text):
x = [] #存放横坐标
y = [] #存放纵坐标
for i in range(len(text)):
#float转换为后面求平均值做准备,逗号分割取第一部分为x,第二部分为y
x.append(float(text[i].split(',')[0]))
y.append(float(text[i].split(',')[1]))
# 找出质心
mid_x = sum(x) / len(x) #总和除个数
mid_y = sum(y) / len(x)
# print(mid_x, mid_y)
distance = [] #存放所有点到质心的距离
for i in range(len(text)):
dis = (x[i] - mid_x) ** 2 + (y[i] - mid_y) ** 2 #点到质心的距离平方
distance.append(dis) #结果存入distance
return distance.index(min(distance)) #返回distance数组最小值的下标
参考:不使用numpy找距离质心最小点实例_慧慧想弹琴的博客-CSDN博客



