查找所有点对之间的欧几里得距离

时间:2019-02-17 10:04:22

标签: python algorithm numpy euclidean-distance

我在列表中有8个点,我需要计算所有可能的对之间的欧几里得距离。我可以编写一个for循环并继续计算距离,但是python / numpy / others可以使用更好的方法/方法吗?

坐标点:

x1,y1 , x2,y2, x3,y3, .... .. ,, .. ,xn,yn

1 个答案:

答案 0 :(得分:1)

是的,您可以使用sklearn中的euclidean_distances。用法(来自手册)

>>> from sklearn.metrics.pairwise import euclidean_distances
>>> X = [[0, 1], [1, 1]]
>>> # distance between rows of X
>>> euclidean_distances(X, X)
array([[0., 1.],
       [1., 0.]])
>>> # get distance to origin
>>> euclidean_distances(X, [[0, 0]])
array([[1.        ],
       [1.41421356]])