Hodustory/프로그래밍&DB

파이썬(python) 입문 : networkX 2(속성 다루기/ 관계 속성(정도) 다루기)

호두밥 2018. 5. 7. 22:40

Accessing edges (엣지에 접근하기)[각주:1]


   노드와 엣지를 불러오기 위해선 G[n]의 형태로 기술하면 됩니다.

   G[n]은 노드 n과 연결된 노드와 연결속성을 보여줍니다.

   G[n][m]은 노드 n과 노드 m의 연결(엣지)의 속성을 보여줍니다.

import networkx as nx
G = nx.Graph()
G.add_nodes_from("1234")
G.add_edges_from([(1,2),(1,3),(1,4)])
print(G[1]) #노드 1과 연결되는 노드들 {}안은 속성값

{2: {}, 3: {}, 4: {}}
print(G[2])

{1: {}}
print(G[3])

{1: {}}
print(G[1][2]) #엣지(1,2)의 속성값만 보여줌

{1: {}}
print(G[2][3]) #존재하지 않는 엣지라 오류발생

아래 처럼 안전하게 엣지의 속성을 부여할 수 있습니다.

G.add_edge(2,3)
G[2][3]['color']='blue'
print(G[2][3])
{'color': 'blue'}

엣지에 부여된 속성을 이용해 루프문을 사용할 수도 있습니다.

fg = nx.Graph()
fg.add_weighted_edges_from([(1,2,0.125),(1,3,0.75),(2,4,1.2),(3,4,0.375)])
for (s,o,d) in fg.edges(data='weight'):
if d<0.5: print('(%d, %d, %.3f)'%(s,o,d))
(1, 2, 0.125)
(3, 4, 0.375)


그래프 속성 부여하기

g = nx.Graph(day="friday")

그래스 속성 수정하기

g.graph['day']='Monday'

노드 속성 부여/수정하기

g.add_node(1, time='5pm')
g.add_nodes_from([1], time='5pm')
g.node[1]['time']='5pm'

엣지 속성 부여/수정하기

Graph.add_edge(1,2, time='5pm')
Graph.add_edges_from((1,2), time="5pm")
Graph.add_edges_from([1,2,{'time':'5pm'}])
Graph[1][2]['time'] = '5pm'
Graph.edge[1][2]['time']='5pm'






  1. https://networkx.github.io/documentation/networkx-1.10/tutorial/tutorial.html [본문으로]
반응형