Aşağıdakileri kullanarak numpy kullanarak, tercihen döngüyü kaldırarak optimize etmek istediğim bir kod parçasına sahibim. Ona nasıl yaklaşacağımı göremiyorum, bu yüzden herhangi bir öneri yardımcı olabilir.Döngüyü en iyileştirme/çıkarma
endeksleri, bir (N, 2) sayısal tamsayı dizisidir, N birkaç milyon olabilir. Kod, ilk sütunda tekrarlanan indisleri buluyor. Bu endeksler için, ikinci sütundaki karşılık gelen indekslerin iki kombinasyonunu yapıyorum. Sonra onları ilk sütundaki endeksle birlikte toplarım.
index_sets = []
uniques, counts = np.unique(indices[:,0], return_counts=True)
potentials = uniques[counts > 1]
for p in potentials:
correspondents = indices[(indices[:,0] == p),1]
combs = np.vstack(list(combinations(correspondents, 2)))
combs = np.hstack((np.tile(p, (combs.shape[0], 1)), combs))
index_sets.append(combs)
Bir ağ sorunu gibi görünüyor, bu yüzden 'networkx' modülüne bakın. – Divakar