如何提高在python中查找集群的效率?
现在我正在做的项目是关于渗流的,描述如下: 一个单元上随机分布有N个半径为r的磁盘。如果磁盘足够近(在2r内),则它们已连接。连接的磁盘形成集群,随着磁盘密度的增加,将形成更多的集群。一旦密度达到阈值,正方形区域的两个相对侧将由簇连接。我的任务是找出那个阈值 现在我的算法如下:如何提高在python中查找集群的效率?,python,arrays,loops,cluster-computing,depth-first-search,Python,Arrays,Loops,Cluster Computing,Depth First Search,现在我正在做的项目是关于渗流的,描述如下: 一个单元上随机分布有N个半径为r的磁盘。如果磁盘足够近(在2r内),则它们已连接。连接的磁盘形成集群,随着磁盘密度的增加,将形成更多的集群。一旦密度达到阈值,正方形区域的两个相对侧将由簇连接。我的任务是找出那个阈值 现在我的算法如下: 我使用np.random.uniform创建一个存储N个坐标的Nx2数组 我创建了一个函数findoverlap(坐标数组,r),它使用一个循环来检查两点之间的距离(如果有N个点,则有N(N-1)个检查,因为对于每个点,
np.random.uniform
创建一个存储N个坐标的Nx2数组findoverlap(坐标数组,r)
,它使用一个循环来检查两点之间的距离(如果有N个点,则有N(N-1)个检查,因为对于每个点,我检查所有其他N-1个点),如果距离足够短,我将坐标存储在字典中。
e、 g.{0:[1,2],1:[0,3],2:[0],3[1]}
表示磁盘0连接到磁盘1和磁盘2,磁盘1连接到磁盘0和磁盘3,以此类推- 如何改进代码并使其更高效
- 有没有更好的算法我可以使用
顺便说一句,我所学的课程是为没有编程经验的物理系一年级学生开设的,我已经完成了这个项目的所有基本任务。我想我不需要做太花哨的东西,但我还是想把它做得尽可能好。问得好!你不能用图论来表达你的数据吗?看见