
目前我有:
def func(points): #Input is a matrix with n lines and 2 columns.
centroid = numpy.mean(points, axis=0)
sum = 0
for point in points:
x = point[0] - centroid[0]
y = point[1] - centorid[1]
sum += x**2 + y**2
return math.sqrt(sum)
Run Code Online (Sandbox Code Playgroud)
有一个内置的序列求和,称为sum(奇怪的是).我们可以使用生成器理解来创建数据,并将其直接提供给sum函数.从而:
return math.sqrt(sum((p[0]-centroid[0])**2 + (p[1]-centroid[1])**2 for p in points))
Run Code Online (Sandbox Code Playgroud)