我开始知道 numpy 对于一个非常大的矩阵的单个元素访问很慢。以下部分代码运行大约需要 7-8 分钟。矩阵大小约为 3000*3000
import numpy as np
................
................
ArrayLength=len(Coordinates)
AdjMatrix=np.zeros((len(Angles),len(Angles)))
for x in range(0, Arraylength):
for y in range(x+1, Arraylength-x):
distance=Distance(Coordinates[x],Coordinates[y)
if(distance<=radius)
AdjMatrix[x][y]=distance
AdjMatrix[y][x]=distance
我基本上是在尝试为由大约 3000 个节点组成的图构建一个邻接矩阵。有人可以帮我做这种麻木的方式吗?或者有什么替代方案?
编辑:这是距离()函数
Def Distance(p1,p2):
distance=np.sqrt(np.square(p1[0]-p2[0])+np.square(p1[1]-p2[1]))
return distance
顺便说一句,我将坐标作为元组传递。如 p[0]=x 坐标和 p[1]=y 坐标。