【问题标题】:How to distance between all points in list?如何计算列表中所有点之间的距离?
【发布时间】:2022-11-16 08:36:14
【问题描述】:

我在图表上绘制随机点。我想在列表中找到从每个点到另一个点的欧几里得距离。

之前的结果/尝试可以查看here

我为 x 和 y 坐标生成 4 个介于 0 和 10 之间的随机数,然后使用 np.array 将它们配对。我需要使用距离公式和嵌套循环来计算列表中两点之间的距离。这会生成 8 个值,我假设它们是距离。因为有 4 个点,所以点之间应该有 6 个距离。

我在距离公式中的编程不正确吗?还是我错误地定义了这些点?

下面的代码

import numpy as np
import matplotlib.pyplot as plt
import random
import math

dist = []

x = [random.uniform(1, 10) for n in range(4)]
y = [random.uniform(1, 10) for n in range(4)]
plt.scatter(x, y)
plt.show()

pairs = np.array([x, y])

def distance(x, y):
    return math.sqrt((x[0]-x[1])**2 + (y[0]-y[1])**2)

for x in pairs:
    for y in pairs:
        d = distance(x, y)
        dist.append(d)
        
print(pairs)

【问题讨论】:

    标签: python nested distance


    【解决方案1】:

    可以试试下面的代码来实现计算每对点之间的距离

    import random
    import math
    
    dist = []
    
    x = [random.uniform(1, 10) for n in range(4)]
    y = [random.uniform(1, 10) for n in range(4)]
    
    pairs = list(zip(x,y))
    
    
    def distance(x, y):
        return math.sqrt((x[0]-x[1])**2 + (y[0]-y[1])**2)
    
    for i in range(len(pairs)):
        for j in range(i+1,len(pairs)):
            dist.append(distance(pairs[i],pairs[j]))
    
    print(dist)
            
    

    【讨论】:

      猜你喜欢
      • 2022-11-03
      • 1970-01-01
      • 2014-11-29
      • 1970-01-01
      • 2013-05-21
      • 2014-02-28
      • 2010-10-30
      相关资源
      最近更新 更多