1
我开始知道numpy对于一个非常大的矩阵来说是单个元素访问缓慢的。代码的以下部分需要大约7-8分钟才能运行。矩阵的大小大约是3000 * 3000numpy 2D矩阵 - 在这种情况下如何提高性能?
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坐标。
你可以用'AdjMatrix [AdjMatrix> =半径] = 0'结合这重复上面的代码,没有Python循环。 – mtrw 2013-04-05 11:01:12
我已编辑我的问题。请看看。 @mtrw请你详细说明一下吗?我很抱歉..我不太熟悉python – 2013-04-05 11:22:07