numpy 2D matrix- Jak poprawić wydajność w tym przypadku?

Dowiedziałem się, że numpy jest powolne dla dostępu do pojedynczego elementu dla bardzo dużej macierzy. Następująca część kodu trwa około 7-8 minut. Rozmiar matrycy wynosi około 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

W zasadzie próbuję skonstruować macierz sąsiedztwa dla wykresu, który składa się z około 3000 węzłów. Czy ktoś może mi pomóc w zrobieniu tego dziwnego sposobu? Lub jakieś alternatywy?

Edytuj: Oto funkcja Distance ()

Def Distance(p1,p2):
    distance=np.sqrt(np.square(p1[0]-p2[0])+np.square(p1[1]-p2[1]))
    return distance

Przy okazji przekazuję współrzędne jako krotki .. Jak w p [0] = współrzędna x i p [1] = współrzędna y.

questionAnswers(1)

yourAnswerToTheQuestion