我是新来的,我想问你如何计算点之间的欧几里德距离存储在矢量。
假设我们有一个numpy.array,每一行是一个向量,一个numpy.array。我想知道是否有可能计算所有点和这个点之间的欧几里德距离,并将它们存储在一个numpy.array中。
下面是一个界面:
points #2d list of row-vectors
singlePoint #one row-vector
listOfDistances= procedure( points,singlePoint)
我们能要这样的吗? 或者有可能有一个命令,把单点作为其他点的列表,最后我们得到一个距离矩阵?
谢谢
虽然你可以使用矢量化,@Karl的方法在使用numpy数组时会比较慢。
更简单的方法是只做
np.hypot(*(points - single_point).T)
。(转置假定点是Nx2数组,而不是2xN。如果是2xN,则不需要.T
。不过,这有点不可读,所以您可以像这样更清楚地写出来(使用一些固定的示例数据…):
要获得距离,可以使用numpy中linalg模块的norm方法:
相关问题 更多 >
编程相关推荐