将2D空间中的点分组到python中预定义的笛卡尔网格单元格中

时间:2015-10-02 10:21:05

标签: python algorithm search numpy scipy

我有很大的不。在2D平面中的点(大约百万)。我想将它们分组为由固定长度的正方形网格定义的单元格(每个单元格边是3)。我不需要。在给定单元格中的点数而不是我需要有关给定点的单元格的信息。什么是最好和最快的方法呢?是否有可以使用的python包?

1 个答案:

答案 0 :(得分:0)

您可以使用np.searchsorted执行此操作。例如:

atol()

对于每个点,您会找到longimport numpy as np xgrid = np.arange(0,33,3) ygrid = np.arange(0,33,3) mypoints = np.array([[4,8],[13,19],[21,1]]) icells = np.searchsorted(xgrid,mypoints[:,0])-1 jcells = np.searchsorted(ygrid,mypoints[:,1])-1 print icells,jcells # [1 4 6] [2 6 0] print xgrid[icells],ygrid[jcells] # [ 3 12 18] [ 6 18 0] 网格的ij索引,然后您可以使用这些索引查找"信息&# 34;关于给定点所在的细胞。