Numpy 2D-Matrix - Wie kann die Leistung in diesem Fall verbessert werden?
Ich habe erfahren, dass die Anzahl der Zugriffe auf einzelne Elemente für eine sehr große Matrix langsam ist. Der folgende Teil des Codes benötigt ca. 7 bis 8 Minuten. Größe der Matrix ist ungefähr 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
Grundsätzlich versuche ich, eine Adjazenzmatrix für einen Graphen zu erstellen, der aus ca. 3000 Knoten besteht. Kann mir jemand dabei helfen? Oder irgendwelche Alternativen?
Bearbeiten: Hier ist die Funktion Distanz ()
Def Distance(p1,p2):
distance=np.sqrt(np.square(p1[0]-p2[0])+np.square(p1[1]-p2[1]))
return distance
Übrigens übergebe ich Koordinaten als Tupel. Wie in p [0] = x-Koordinate und p [1] = y-Koordinate.