numpy 2D matrix - Как улучшить производительность в этом случае?

Я узнал, что 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-координата.

Ответы на вопрос(1)

Ваш ответ на вопрос