наиболее эффективный способ вычисления пользовательской матрицы расстояний - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь вычислить матрицу расстояний с помощью пользовательской функции расстояния, которая возвращает длину пересечения двух множеств:

dist = lambda a, b: len(list(a & b))

На данный момент я делаю это так, но это занимает огромное количество времени, поскольку список, который я перебираю, содержит более 600 000 элементов.

row = []
col = []
data = []

for i, a in enumerate(l):
    for j, b in enumerate(l):
        if i<j:
            d = dist(sample_dict[a], sample_dict[b])
            if d!=0:
                data.append(d)
                row.append(i)
                col.append(j)

M = scipy.sparse.csc_matrix((data, (row, col)))

Есть ли более эффективный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...