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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage