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个点.
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)