Эффективно создать матрицу сродства numpy - PullRequest
0 голосов
/ 23 февраля 2020

В настоящее время я использую этот код для вычисления аффинной матрицы

m = np.size(pts[0])
A = np.zeros(m*m).reshape(m,m)
for i,x in enumerate(pts[0]):
    for j,y in enumerate(pts[1]):
        A[i,j] = np.exp(-1*np.linalg.norm(x-y)**2)

Где pts - матрица nx2. Это отлично работает на меньшем размере, но O (n ^ 2). Результатом должна быть матрица nxn с весами.

1 Ответ

2 голосов
/ 23 февраля 2020

Вот векторизованная версия:

#n = 10
#pts = np.random.rand(2, n)

X, Y = np.meshgrid(pts[1], pts[0])
A = np.exp(-np.abs(X-Y)**2)  # you can omit the abs because of **2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...