我在列表中有8个点,我需要计算所有可能的对之间的欧几里得距离。我可以编写一个for循环并继续计算距离,但是python / numpy / others可以使用更好的方法/方法吗?
坐标点:
x1,y1 , x2,y2, x3,y3, .... .. ,, .. ,xn,yn
答案 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]])