Networkxの研究ノート(0)

 

  

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}

 

 

おすすめ

転載: www.cnblogs.com/bobo-aoao/p/11881228.html