数组中一个点与其他点之间的距离

2024-06-28 20:26:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一些代码来计算同一数组中一个点和其余点之间的实际距离。该阵列保存三维空间中粒子的位置。有N个粒子,所以数组的形状是(N,3)。我选择一个粒子并计算这个粒子和其他粒子之间的距离,所有粒子都在一个数组中。在

有人知道怎么做吗?在

到目前为止我所拥有的:

xbox = 10
ybox = 10
zbox = 10
nparticles =15
positions = np.empty([nparticles, 3])
for i in range(nparticles):
     xrandomalocation = random.uniform(0, xbox)
     yrandomalocation = random.uniform(0, ybox)
     zrandomalocation = random.uniform(0, zbox)
     positions[i, 0] = xrandomalocation
     positions[i, 1] = yrandomalocation
     positions[i, 2] = zrandomalocation

我现在只有这些了。我在考虑使用np.linalg.norm,但是我根本不确定如何在代码中实现它(或者在循环中使用它)?在


Tags: 代码距离np粒子randomuniform数组xbox
1条回答
网友
1楼 · 发布于 2024-06-28 20:26:38

听起来您可以使用^{}^{}来完成此操作。例如,要获得从点Xcoords中的点的距离:

>>> from scipy.spatial import distance
>>> X = [(35.0456, -85.2672)]
>>> coords = [(35.1174, -89.9711),
...           (35.9728, -83.9422),
...           (36.1667, -86.7833)]
>>> distance.cdist(X, coords, 'euclidean')
array([[ 4.70444794,  1.6171966 ,  1.88558331]])

pdist与此类似,但只使用一个数组,并且可以得到所有对之间的距离。在

相关问题 更多 >