【发布时间】:2021-04-05 10:51:24
【问题描述】:
有没有更有效的方法来计算给定点集之间的欧几里得距离?
这是我使用的代码:
def all_distances(position):
distances = np.zeros((N_circles, N_circles))
for i in range(N_circles):
for j in range(i, N_circles):
distances[i][j]=calculate_distance(position[i], position[j])
return distances
def calculate_distance(p1, p2):
return math.sqrt((p1[0]-p2[0])**2+(p1[1]-p2[1])**2)
position 是一个包含N_circles 点坐标的数组。
【问题讨论】:
-
您的代码高效且易于阅读。挺好的
-
如果您的代码有效但您想改进它,Code Review 可能是一个更好的站点。也就是说,这将有助于了解您认为改进的内容。更好的时间效率?更少的内存使用?两者都没有?
-
谢谢 G. 安德森。我不知道代码审查网站。无论如何,我的目标是让我的代码更有效率,因为它必须循环多次。
-
@FedericoMancini 如果您想提高现有模块(如 scipy)的性能,请查看 stackoverflow.com/a/63594244/4975981 并进行性能比较。
标签: python numpy optimization euclidean-distance