を意味する:私は、隣接行列を生成したいは、リストから隣接行列を生成し、隣接関係が、私はこのようなリスト持っ等しい要素
lst = [0, 1, 0, 5, 0, 1]
:
out =
array([[ 1., 0., 1., 0., 1., 0.],
[ 0., 1., 0., 0., 0., 1.],
[ 1., 0., 1., 0., 1., 0.],
[ 0., 0., 0., 1., 0., 0.],
[ 1., 0., 1., 0., 1., 0.],
[ 0., 1., 0., 0., 0., 1.]])
out[i,j] = 1 if lst[i]==lst[j]
をここで私のコードは2つのループ用です:
lst = np.array(lst)
label_lst = list(set(lst))
out = np.eye(lst.size, dtype=np.float32)
for label in label_lst:
idx = np.where(lst == label)[0]
for pair in itertools.combinations(idx,2):
out[pair[0],pair[1]] = 1
out[pair[1],pair[0]] = 1
しかし、これを改善する方法があるはずです。なにか提案を?
非常にきれいな解決策(+1)のように見えますが、 –