我有两个坐标列表:
l1 = [[x,y,z],[x,y,z],[x,y,z],[x,y,z],[x,y,z]]
l2 = [[x,y,z],[x,y,z],[x,y,z]]
Run Code Online (Sandbox Code Playgroud)
我想找到 l1 和 l2 之间的最短成对距离。两个坐标之间的距离很简单:
numpy.linalg.norm(l1_element - l2_element)
Run Code Online (Sandbox Code Playgroud)
那么如何使用 numpy 将这个操作有效地应用于每对元素呢?
我想使用scipy.spatial的KDTree来查找二维数组中的最近邻居对(本质上是嵌套列表的维度为2的列表列表).我生成我的列表列表,将其输入numpy的数组,然后创建KDTree实例.但是,每当我尝试对其运行"查询"时,我都不可避免地会得到奇怪的答案.例如,当我输入:
tree = KDTree(array)
nearest = tree.query(np.array[1,1])
Run Code Online (Sandbox Code Playgroud)
最近打印出来(0.0,0).目前,我正在使用一个基本上y = x的数组作为范围(1,50)所以我希望我得到(2,1)的最近邻居(1,1)
我做错了什么,狡猾的大师?
编辑:或者,如果有人可以指向我的python的KDTree包,他们已经用于最近邻搜索给定点,我很乐意听到它.