Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中调试一个函数,该函数有时不';不行?_Python_Numpy - Fatal编程技术网

如何在Python中调试一个函数,该函数有时不';不行?

如何在Python中调试一个函数,该函数有时不';不行?,python,numpy,Python,Numpy,我快发疯了,因为有时一个函数会返回错误的数据对!我有一个大约700点的numpy阵列: np.array =[[ 1.00000000e+01 -4.65000000e+02] [ 1.78319153e+01 -4.60252579e+02] ...] 我有一个观点: point [32.121456577748098, -241.01907826915999] 只想检查数组中最接近给定点的点或索引的位置 我用这条线找到最近的点: arr

我快发疯了,因为有时一个函数会返回错误的数据对!我有一个大约700点的numpy阵列:

np.array =[[  1.00000000e+01  -4.65000000e+02]
           [  1.78319153e+01  -4.60252579e+02]
          ...]
我有一个观点:

point [32.121456577748098, -241.01907826915999]
只想检查数组中最接近给定点的点或索引的位置

我用这条线找到最近的点:

 array[spatial.KDTree(array).query(point)[1]]
这很好用。但有时它不起作用!它只是从我的数组中返回一个不是最近的项目。 有趣的事实是,当我尝试类似的函数或解决方案时,两个函数不能同时工作。我不知道为什么它会起作用,有时甚至不起作用。阵列和点是在主循环中新生成的,主循环也使用TCP和UDP。我通常如何调试它


谢谢

你为什么不在numpy做这个

distance = np.sum((yourlist - yourpoint)**2.)**(1/2.)
index = np.argmin(distance)

这不是对您的具体问题的直接回答,但我建议您只需计算
numpy.linalg.norm(数据点,轴=1)
,然后使用
numpy.argmin()
找到最小范数的索引

基本上:

dist = numpy.linalg.norm(data - point, axis=1)
minindex = np.argmin(dist)
closest_pt = data[minindex]

您必须假设
query()
方法有效,否则其他用户可能会对numpy提出错误报告。可能您有多个数组,并且正在搜索错误的数组?