相关疑难解决方法(0)

数以百万计的3D点:如何找到最接近给定点的10个点?

3-d中的点由(x,y,z)定义.任何两个点(X,Y,Z)和(x,y,z)之间的距离d是d = Sqrt [(Xx)^ 2 +(Yy)^ 2 +(Zz)^ 2].现在文件中有一百万个条目,每个条目都是空间中的某个点,没有特定的顺序.给定任意点(a,b,c)找到最近的10个点.您将如何存储百万点以及如何从该数据结构中检索这10个点.

algorithm graphics graph

67
推荐指数
5
解决办法
3万
查看次数

NumPy:Vectorize为另一个数组中的每个元素在数组中查找最接近的值

输入

known_array:numpy数组; 仅由标量值组成;shape: (m, 1)

test_array:numpy数组; 仅由标量值组成;shape: (n, 1)

产量

indices:numpy数组; shape: (n, 1); 对于每个值,test_array查找最接近的值的索引known_array

residual:numpy数组; shape: (n, 1); 对于每个值,test_array找到与最接近的值的差异known_array

In [17]: known_array = np.array([random.randint(-30,30) for i in range(5)])

In [18]: known_array
Out[18]: array([-24, -18, -13, -30,  29])

In [19]: test_array = np.array([random.randint(-10,10) for i in range(10)])

In [20]: test_array
Out[20]: array([-6,  4, -6,  4,  8, -4,  8, -6,  2,  8])
Run Code Online (Sandbox Code Playgroud)

示例实现(未完全矢量化)

def find_nearest(known_array, value): …
Run Code Online (Sandbox Code Playgroud)

python algorithm numpy vectorization cython

5
推荐指数
3
解决办法
1816
查看次数

标签 统计

algorithm ×2

cython ×1

graph ×1

graphics ×1

numpy ×1

python ×1

vectorization ×1