Azi*_*bro 10
尽管此解决方案使用numpy,np.linalg.norm但可能是另一种解决方案。
假设你有一点p0 = np.array([1,2,3])和第二点p1 = np.array([4,5,6])。那么找到两者之间距离的最快方法是:
import numpy as np
dist = np.linalg.norm(p0 - p1)
Run Code Online (Sandbox Code Playgroud)
如果可能,请使用numpy模块来处理此类事情。它比使用常规python列表更有效。
我正在这样解释你的问题
N)k在组1是有关点k如果每个点是一些对象的坐标,我在一些其他的时间t将其解释为包含所述初始点集1和组2的点中设置2。d(k) = dist(p1(k), p2(k)),其中p1(k)位置k1 p2(k)是集合1 中的点号k,是2中集合中的点号。假设你的6名名单x1_coords,y1_coords,z1_coords和x2_coords,y2_coords,z2_coords分别,那么你就可以计算出这样的距离
import numpy as np
p1 = np.array([x1_coords, y1_coords, z1_coords])
p2 = np.array([x2_coords, y2_coords, z2_coords])
squared_dist = np.sum((p1-p2)**2, axis=0)
dist = np.sqrt(squared_dist)
Run Code Online (Sandbox Code Playgroud)
p1(k)和之间的距离p2(k)现在存储为numpy数组dist[k]。
关于速度:在配备“ Intel(R)Core i7-3517U CPU @ 1.90GHz”的笔记本电脑上,计算N = 1E6两组点之间的距离的时间为45毫秒。
| 归档时间: |
|
| 查看次数: |
8722 次 |
| 最近记录: |