微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

确定数据集中相邻点之间的平均欧氏距离

如何解决确定数据集中相邻点之间的平均欧氏距离

我想计算 2D 数据集 (xCoords,yCoords) 中的平均欧几里得距离,但仅计算相邻点之间的距离。

举个例子:

>>> ser.sort_index(ascending=True)
Category
0              28793.78
Amazon          6380.09
Boots            239.62
Newspapers       279.76
Supermarker     5895.26
Taxi             324.79
dtype: float64

我想找到点之间的欧几里得距离,但只找到彼此相邻的点。我的任务可能有 numpy、scipy 或 sklearn 函数(或其他一些函数)吗?

编辑:

举个例子:

我想要的:

enter image description here

我不想要的:

enter image description here

我不想计算从每个数据点到所有其他数据点的欧几里德距离。

解决方法

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]])

该函数返回一个矩阵,其中包含每对坐标之间的欧几里得距离,如果这不是您所需要的,您可以使用您想要获得这些“相邻距离”的规则来过滤该矩阵。

或者您可能需要某种聚类算法(如 k-means),它将划分聚类中最近的点,然后获得每个聚类的平均距离。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。