Networkxクラス |
タイプ |
自己ループは許可します |
パラレルエッジは許さ |
---|---|---|---|
グラフ |
無向 |
はい |
番号 |
有向グラフ |
監督 |
はい |
番号 |
多重グラフ |
無向 |
はい |
はい |
MultiDiGraph |
監督 |
はい |
はい |
グラフを成長させるための2つの方法があります。
インポートNXとしてnetworkx
輸入PLTとしてmatplotlib.pyplot
G = nx.Graph()
G.add_node(1、機能= 10 ) G.add_node(1、機能= 20 ) G.add_node(2、機能= 'ボボ' )ノード= [(3、{ '特徴': 'AOAO'})、(4、{ '機能':9 })] G.add_nodes_from(ノード)G.nodes [1] [ '特徴'] = 'いい'プリント(G.nodes)プリント(G.nodes(データ= TRUE))
#結果 #[1、2、3、4] #[(1、{ '特徴'」いい '})、(2、{' 特徴 ': 'ボボ'})、(3、{ '特徴':' 一般 '})、(4、{' 特長「:9})]
G.add_edge(0、1、距離= 100 )
G.add_edge(0、1、距離= 200 )
エッジ= [(1、3、{ '距離':142})、(2、3、{ '距離':19 })]
G.add_edges_from(エッジ)
G.edges [0、1] [ '距離'] = 999 G [0] [1]〜[ '距離'] = 1999
印刷(G.edges) 印刷(G.edges(データ= TRUE))
#結果 #[(1,0)、(1,3)、(2,3)] #[(1、0、{ '距離':1999})、(1、3、{ '距離':142})、(2、3、{ '距離':19})]
レポートの何かに他の有用な方法は:(隣人とADJは、私たちが直接グラフインデックスにアクセスする可能性があるため、almostly有用ではありません)
G.neighborsにおけるn(1 ):
プリント(N)
G中のN [1 ]:
プリント(N) NBRのため、G.adjにdatadict [2 ] .items(): プリント(NBR、datadict)NBRのための、Gにdatadict [2 ] .items():プリント(NBR、datadict)プリント(G.has_node(0))プリント(G.has_node(5 ))、印刷(G.has_edge( 0,1 )))(G.has_edge(2,1)を印刷
#0 #3 #0 #3 #3 { '距離':19} #3 { '距離':19} #True #False #True #False
ノードやエッジの属性のデータを使用する方法:
node_indexため、G.nodesでnode_feature(データ= 真):
印刷(node_index、node_feature)
受信機、送信者のために、(データ= G.edgesに備えて真):
プリント(受信機、送信者、機能)
1 { '特徴': 'いい' }
2 { '特徴': 'ボボ' }
{3「の特徴:*パーティー* }
4 { '特徴':9 } 0} { 1 0 { '距離':1999 } 1 3 { '距離':142 } 2 {3 '距離':19}
Gのような有向グラフを取得するための2つの方法があり、それらは同じノード、名前を持っているが、各エッジに(U、V、データ)は、2つの有向エッジ(U、V、データ)および(V、U、データで置き換え)、それらの間の差は「().to_directed」ということであるディープコピーである、nx.DiGraphは浅いコピーであります
DIG = G.to_directed()
受信機、送信者のために、diG.edges(データ=に備えて真):
プリント(受信機、送信者、機能)
DIG = nx.DiGraph(G)
1 0 { '距離':1999 }
1 3 { '距離':142 }
2 3 { '距離':19 }
3 1 { '距離':142 } 3 2 { '距離':19 } 0 1 { '距離':1999}