我有以下代码,其中points是一个由3列列表组成的多行列表,coorRadius是我想要找到局部坐标最大值的半径,localCoordinateMaxima是一个数组,我在其中存储这些最大值的i值:
for i,x in enumerate(points):
check = 1
for j,y in enumerate(points):
if linalg.norm(x-y) <= coorRadius and x[2] < y[2]:
check = 0
if check == 1:
localCoordinateMaxima.append(i)
print localCoordinateMaxima
很不幸,当我有几千个点时,这需要很长时间,我正在寻找加快速度的方法。我尝试使用if all()条件来完成它,但是我没有成功,我甚至不确定它是否更有效。你们能否提出一种使它更快的方法呢?
最好的!
points
是一个 numpy 数组吗?这些数据点是否在网格上? - Roland Smith