【发布时间】:2016-10-28 13:57:01
【问题描述】:
例如,找到下面的图片,它解释了一个简单的 2D 案例的问题。每个点的标签 (N) 和坐标 (x,y) 是已知的。我需要找到位于红色圆圈内的所有点标签
我的实际问题是在 3D 中,点分布不均匀
此处附有包含 7.25 M 点坐标的示例输入文件point file。
我尝试了以下代码
import numpy as np
C = [50,50,50]
R = 20
centroid = np.loadtxt('centroid') #chk the file attached
def dist(x,y): return sum([(xi-yi)**2 for xi, yi in zip(x,y)])
elabels=[i+1 for i in range(len(centroid)) if dist(C,centroid[i])<=R**2]
单次搜索大约需要 10 分钟。有什么建议可以让它更快吗?
谢谢, 普里蒂维
【问题讨论】:
-
Python 是一种脚本语言,这意味着每次启动时每一行都会转换为机器码。一种编程语言,如 C、Java、Pascal 等,在运行之前首先完全编译,运行速度要快得多。因此,我建议您开始使用非脚本编程语言。