인접 행렬에서 Python의 graph-tool을 사용하여 그래프를 어떻게 만들어야합니까? adj
인접 행렬로 행렬이 있다고 가정합니다 .
지금 내가하는 일은 다음과 같습니다.
g = graph_tool.Graph(directed = False)
g.add_vertex(len(adj))
edge_weights = g.new_edge_property('double')
for i in range(adj.shape[0]):
for j in range(adj.shape[1]):
if i > j and adj[i,j] != 0:
e = g.add_edge(i, j)
edge_weights[e] = adj[i,j]
하지만 옳지 않다고 생각합니다. 이에 대한 더 나은 해결책이 있습니까?
(그리고 이것에 대한 적절한 태그는 graph-tool
이지만 추가 할 수 없습니다. 충분한 권한을 가진 친절한 사람이 태그를 만들 수 있습니까?)
그래프 도구에는 이제 그래프에 간선 목록을 추가하는 기능이 포함됩니다. 이제 다음과 같이 할 수 있습니다.
import graph_tool as gt
import numpy as np
g = gt.Graph(directed=False)
adj = np.random.randint(0, 2, (100, 100))
g.add_edge_list(np.transpose(adj.nonzero()))
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다