pac*_*erg 19 python numpy vector scipy euclidean-distance
我是Numpy的新手,我想问你如何计算矢量中存储的点之间的欧氏距离.
让我们假设我们有一个numpy.array,每一行都是一个向量和一个numpy.array.我想知道是否可以计算所有点和这个单点之间的欧氏距离并将它们存储在一个numpy.array中.
这是一个界面:
points #2d list of row-vectors
singlePoint #one row-vector
listOfDistances= procedure( points,singlePoint)
Run Code Online (Sandbox Code Playgroud)
我们可以有这样的东西吗?或者是否可以让一个命令将单个点作为其他点的列表,最后我们得到一个距离矩阵?
谢谢
Joe*_*ton 17
虽然你可以使用矢量化,但是对于numpy数组,@ Karl的方法会相当慢.
更简单的方法就是做np.hypot(*(points - single_point).T)
.(转置假定点是Nx2阵列,而不是2xN.如果它是2xN,则不需要.T
.
但是这有点难以理解,所以你更明确地写出来(使用一些固定的示例数据......):
import numpy as np
single_point = [3, 4]
points = np.arange(20).reshape((10,2))
dist = (points - single_point)**2
dist = np.sum(dist, axis=1)
dist = np.sqrt(dist)
Run Code Online (Sandbox Code Playgroud)
小智 5
import numpy as np
def distance(v1, v2):
return np.sqrt(np.sum((v1 - v2) ** 2))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
34430 次 |
最近记录: |