【发布时间】:2012-06-13 22:57:44
【问题描述】:
假设有一个网格,其中包含一些点,如下图所示。 我的目标是计算网格中每框的点数。这是我的第一次尝试。
for tupel in point_list:
a=0
b=0
for i in self.boxvector:
if tupel[0] < i:
a=self.boxvector.index(i)-1
break
for i in self.boxvector:
if tupel[1] < i:
b=self.boxvector.index(i)-1
break
farray[a][b]+=1
它有效,但速度很慢。有没有加快速度?
我使用一个名为boxvector 的变量来定义网格。在此示例中,boxvector 为:boxvector = [-1., -.5, 0, .5, 1.]。网格始终是二次方的,最大值为 -1 和 1。
这些框通过farray 表示,看起来像farray = [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]。因此,每次算法在相应的框中找到一个点时,每个框都会增加一个值。 point_list 的格式为point_list = [(x0,y0),(x1,y1),(x3,y3), ...]
感谢您的帮助!
【问题讨论】:
标签: python