gpt4 book ai didi

python - 查找点到轴的距离

转载 作者:行者123 更新时间:2023-11-28 18:43:36 25 4
gpt4 key购买 nike

我在 3D 笛卡尔空间中有一个点数组:

P = np.random.random((10, 3))

现在我想找到它们到给定轴以及在该给定轴上的距离

Ax_support = array([3, 2, 1])
Ax_direction = array([1, 2, 3])

我找到了一个解决方案,它首先从垂直于方向向量的每个点找到向量......但是我觉得它真的很复杂并且对于这样一个标准问题会有一个 numpy 或 scipy例程已经在那里(因为在 scipy.spatial.distance 中找到点之间的距离)

最佳答案

如果在 numpy/scipy 的标准操作中看到这样的操作,我会感到很惊讶。您正在寻找的是您线上的投影距离。从减去 Ax_support 开始:

P_centered = P - Ax_support

在方向 Ax_direction 上通过 0 的线上的点,在 L2 意义上到 P_centered 的每个元素的最短距离由下式给出

P_projected = P_centered.dot(np.linalg.pinv(
Ax_direction[np.newaxis, :])).dot(Ax_direction[np.newaxis, :])

因此你要找的公式是

distances = np.sqrt(((P_centered - P_projected) ** 2).sum(axis=1))

是的,这正是您所建议的,以矢量化的方式做事,因此对于相当多的数据点来说应该非常快。

注意:如果有人知道这个的内置函数,我会非常感兴趣!

关于python - 查找点到轴的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23103345/

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