Чрезвычайно медленная операция строки суммы в матрице Sparse LIL в Python

Я написал этот код на Python, который дает ожидаемые результаты, но чрезвычайно медленно. Узким местом является суммирование нескольких строк scipy.sparse.lil_matrix. Как я могу сделать это быстро?

# D1 is a 1.5M x 1.3M sparse matrix, read as scipy.sparse.lil_matrix.
# D2 is a 1.5M x 111 matrix, read as numpy.array
# F1 is a csv file, read using csv.reader

for row in F1:
    user_id = row[0]
    clust = D2[user_id, 110],
    neighbors = D2[ D2[:, 110] == clust][:,1]
    score = np.zeros(1300000)

    for neigh in neighbors:
        score = score + D1 [neigh, :] # the most expensive operation

    toBeWritten = np.argsort(score)[:,::-1].A[0,:]

Пожалуйста, дайте мне знать, если есть что-то еще, что не очень оптимально.

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

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