gpt4 book ai didi

python - 使用Python中的内置函数查找3D距离

转载 作者:行者123 更新时间:2023-12-02 04:43:06 24 4
gpt4 key购买 nike

我有 6 个列表,存储两组位置的 x、y、z 坐标(每组 3 个列表)。我想计算两组中每个点之间的距离。我已经编写了自己的距离函数,但速度很慢。我的一个列表有大约 100 万个条目。我尝试过 cdist,但它产生一个距离矩阵,我不明白它的含义。是否有另一个内置函数可以做到这一点?

最佳答案

如果可能,请使用 numpy模块来处理这类事情。它比使用常规的 Python 列表要高效得多。

我是这样解释你的问题的

  1. 您有两组积分
  2. 两组点数相同 ( N )
  3. k第 1 组中与点 k 相关在集合 2 中。如果每个点是某个对象的坐标,我将其解释为集合 1 包含初始点,集合 2 包含其他时间 t 的点。
  4. 您想求距离d(k) = dist(p1(k), p2(k))哪里p1(k)是点号k在集合 1 和 p2(k) 中是点号k在第二组中。

假设您的 6 个列表是 x1_coords , y1_coords , z1_coordsx2_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)

p1(k)之间的距离和p2(k)现在存储在 numpy 数组中为 dist[k] .

至于速度:在我的配备“Intel(R) Core(TM) i7-3517U CPU @ 1.90GHz”的笔记本电脑上,计算 N=1E6 的两组点之间的距离的时间为 45 毫秒。

关于python - 使用Python中的内置函数查找3D距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20184992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com