Python替代品,用于计算两组2d点之间的成对距离

在Matlab中,存在pdist2命令。给定矩阵mx2和矩阵nx2,矩阵的每一行代表一个2d点。现在,我想创建一个mxn矩阵,使(i,j)元素表示从矩阵的第一个点到矩阵的i第一个点的距离。我只是简单地调用命令。mx2``j``nx2``pdist2(M,N)

我在python中寻找替代方法。我当然可以编写2个for循环,但是由于我正在使用2个numpy数组,因此使用for循环并非总是最佳选择。在pythonUniverse中是否有针对此的优化命令?基本上,我要用Python代替MATLAB的pdist2

回答:

您正在寻找cdist

scipy函数。它将计算两组n维矩阵之间的成对距离(默认为欧式)。

from scipy.spatial.distance import cdist

import numpy as np

X = np.arange(10).reshape(-1,2)

Y = np.arange(10).reshape(-1,2)

cdist(X, Y)

[[  0.           2.82842712   5.65685425   8.48528137  11.3137085 ]

[ 2.82842712 0. 2.82842712 5.65685425 8.48528137]

[ 5.65685425 2.82842712 0. 2.82842712 5.65685425]

[ 8.48528137 5.65685425 2.82842712 0. 2.82842712]

[ 11.3137085 8.48528137 5.65685425 2.82842712 0. ]]

以上是 Python替代品,用于计算两组2d点之间的成对距离 的全部内容, 来源链接: utcz.com/qa/401937.html

回到顶部