确定数据集中相邻点之间的平均欧氏距离
Determining the average euclidean distance between neighbouring points in dataset
我想计算二维数据集(xCoords,yCoords)中的平均欧氏距离,但仅限于相邻点之间。
举个例子:
xCoords = [[16.8742 10.7265 30.0538 10.4524 12.6483 15.5349 10.2094 28.6425 9.2882]]
yCoords = [[14.5835 6.0766 12.7006 4.3638 5.0318 14.2657 8.3131 15.8346 6.1746]]
我想求点之间的欧几里德距离,但仅限于那些彼此相邻的点。我的任务可能有 numpy、scipy 或 sklearn 函数(或其他函数)吗?
编辑:
举例说明:
我想要的:
我不想要的:
我不想计算每个数据点到所有其他数据点的欧氏距离。
Sklearn 具有 eucliedean_distances 函数:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.euclidean_distances.html
>>> 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]])
函数 return 一个矩阵,每对坐标之间具有欧氏距离,如果这不是您所需要的,您可以使用您想要获得那些“相邻距离”的规则过滤该矩阵。
或者您可能需要某种聚类算法(如 k-means),它将最近的点划分为簇,然后得到每个簇的平均距离。
我想计算二维数据集(xCoords,yCoords)中的平均欧氏距离,但仅限于相邻点之间。
举个例子:
xCoords = [[16.8742 10.7265 30.0538 10.4524 12.6483 15.5349 10.2094 28.6425 9.2882]]
yCoords = [[14.5835 6.0766 12.7006 4.3638 5.0318 14.2657 8.3131 15.8346 6.1746]]
我想求点之间的欧几里德距离,但仅限于那些彼此相邻的点。我的任务可能有 numpy、scipy 或 sklearn 函数(或其他函数)吗?
编辑:
举例说明:
我想要的:
我不想要的:
我不想计算每个数据点到所有其他数据点的欧氏距离。
Sklearn 具有 eucliedean_distances 函数:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.euclidean_distances.html
>>> 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]])
函数 return 一个矩阵,每对坐标之间具有欧氏距离,如果这不是您所需要的,您可以使用您想要获得那些“相邻距离”的规则过滤该矩阵。
或者您可能需要某种聚类算法(如 k-means),它将最近的点划分为簇,然后得到每个簇的平均距离。