【发布时间】:2015-09-09 13:13:15
【问题描述】:
我最近开始使用 Python,所以也许这是一个愚蠢的问题,但无论如何:
我有两个数组 C 和 X。每个数组元素都是二维点。
例如:
C = [[1,1], [10,10]]
X = [[1,2], [1,3], [2,1], [10,11], [10,12], [11,11], [12,11], [9,11]]
我想将来自X 的点围绕C 中最近(欧几里得距离)的点进行分组。
例如,对于X([1,2]) 的第一个元素,距离C 最近的点是C( [1,1]) 的第一个元素,
X ([1,3]) 的第二个元素 - 又是C([1,1]) 的第一个元素
...
X([9,11]) 中的最后一个元素 - C([10,10]) 中的第二个元素
所以[1,1] 是最接近X 的3 个点的元素,而[10, 10] 是最接近X 的5 个元素的元素。
我想要一个 python F(C,X) 中的函数,它将为 C 的每个元素返回 X 中与 C 的这个元素最近的元素的数量。所以在这个例子中它应该返回[3,5]。
我可以编写自己的函数,但它不会有效,所以我有兴趣在 Python 中是否有任何预定义的函数来解决我的问题?
谢谢
【问题讨论】:
-
你试过
scipy吗? -
你检查过 numpy、scipy 或 pandas 吗?
-
谢谢你,spatial.KDTree 完成了这项工作