私は、numpyを使用して最適化したい、好ましくはループを削除したい次のコードを用意しました。私はそれにアプローチする方法を見ることができないので、どんな示唆も役に立つでしょう。ループの最適化/削除
インデックスは、(N、2)個数の整数配列であり、Nは数百万にすることができます。コードが行うことは、最初の列に繰り返しインデックスを見つけることです。これらのインデックスについては、2番目の列に対応する2つのインデックスのすべての組み合わせを作成します。その後、最初の列のインデックスと一緒にそれらを収集します。
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)
ネットワークに問題がありますので、おそらく 'networkx'モジュールを見てください。 – Divakar