编程语言
首页 > 编程语言> > 用于计算两组2d点之间成对距离的Python替代方案

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

作者:互联网

参见英文答案 > Efficient distance calculation between N points and a reference in numpy/scipy                                    6个
>            Minimum Euclidean distance between points in two different Numpy arrays, not within                                    5个
在Matlab中存在pdist2命令.给定矩阵mx2和矩阵nx2,每行矩阵表示2d点.现在我想创建一个mxn矩阵,使得(i,j)元素表示从mx2矩阵的第i个点到nx2矩阵的第j个点的距离.我只需调用命令pdist2(M,N).

我在python中寻找替代方案.我当然可以写2 for循环,但由于我使用2个numpy数组,使用for循环并不总是最好的选择.在python宇宙中是否有针对此的优化命令?基本上我要求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)

06001

标签:euclidean-distance,python,numpy,matrix,algorithm
来源: https://codeday.me/bug/20191008/1870729.html