PythonのNetworkxの基礎と使用の概要

まず、マップの基礎

1.複雑なネットワーク(複雑ネットワーク)に定義特性

一部には自己組織化、自己相似性、トラクター、小さな世界、スケールフリーネットワークや財産の全ては、複雑なネットワークと呼ばれる:銭は、より厳格な定義の複雑なネットワークを提供します。

複雑なネットワークは、通常の特徴があります。

(1)スモールワールド。大規模であるが任意の2つのノード間のほとんどのネットワークが、比較的短いパス。

(2)度(クラスタリング係数)を集めているクラスタ。これは、ネットワークの凝集傾向です。グループネットワークの範囲です。ユニコムグループのコンセプトは、小規模な流通ネットワークの大規模なネットワークを収集し、各関連の接続状況を反映しています。例えば、別の小グループと小グループでの友人の円の間の関係。

(3)べき乗則(パワー法)分布の概念の度合い。相関の頂点間の接続関係の気密性が度を反映しています。

関連措置の2.ネットワーク構造

度(度) - ノードに接続されたエッジの数。接続ノードの説明。ネットワークのうち、それに含まれるすべてのノードの平均値です。(計算方法:ネットワーク内のノードの数で割ったエッジの数倍)

等しい度と図形の頂点と頂点の学位を持っています。

経路長(光路長) - エッジの最小数は、2つのノード間を通過するのに必要な、すなわち、ノードとノードとの間の距離。

平均経路長は、 - ネットワーク内のノードのすべての対のノード数(ノード数)のすべてのペア間のネットワークパスの総数が分割され、平均経路長の経路です。

ユニコム度(コネクティビティ) - 図kはこのようなノードは、すべての図面からそのような全てのノードとそれらの関連するエッジを除去した後、図が得られ、もはや通信または図の些細なグラフであり、Kは、図に呼び出されていません。接続ノード。

クラスタリング係数(クラスタリング係数) -図中のすべての三角形の数は、ノードによって形成される三角形の最大可能数(可能な最大数で割った*は、N-(N - 1)。(N - 2)/ 3 2 1 = N-( N-1)*(N- 2)/ 6)。

統計で3.Gephi

平均度(度) - 各ノードの度の算出、及び同程度のノード数をカウントします。指向の図平均度:全て度の合計点/ノード* 2;無向グラフ:すべて度の合計点/ノード。ノードの次数が高いほど、より多くのポイントは、キーポイントことを示し、それに接続されています。

加重平均(加重度) - 加重度に反して、体重程度の重量の右側次に、エッジがノードのためのソースである場合、側のポイントを得るために、手段を重み付け。それは程度の加重和であると加重度を加えます。グラフの加重平均が:;:加重度/ノードの総和ノードの/ 2 *数の加重和図の平均加重無向。

ネットワーク直径(グラフの距離) - 任意の2つのノード間の最大ネットワーク距離。

図密度(グラフ密度) -有向グラフ:エッジの数/(ノードの数、ノード-ノード); NO図:エッジ数 2 /(ノードノード-ノード)。前記(ノードノード-ノード)(これらは、図を分割する自由がある場合、有向グラフ2)* nは(N-1)、エッジノードNの、すなわち最大数を生成することができます。図密度を生成することができる辺の実際の数で割ったエッジの最大数を使用することで、より密接ノードに接続された図示結果大きいです。

モジュラー(モジュール化) - クラスタリング手法。

第二に、Pythonのnetworkxのモジュールの使用

マップの確立1

import networkx as nx
G=nx.Graph()#创建空的简单图
G=nx.DiGraph()#创建空的简单有向图
G=nx.MultiGraph()#创建空的多图
G=nx.MultiDiGraph()#创建空的有向多图

2.加点、加边

G.add_node(1)#加1这个点
G.add_node(1,1)#用(1,1)这个坐标加点
G.add_nodes_from([2,3])#加列表中的点
 
G.add_edge(1,2)#加边,起点是1终点是2
G.add_weight_edge(1,2,3.0)#第三个是权值
G.add_edges_from(list)#添加列表中的边
G.add_weight_edges_from(list)

点とエッジを削除3

G.remove_node()
G.remove_nodes_from()
G.remove_edge()
G.remove_edges_from()
G.clear()

4.ループとの縁

G.add_nodes_from([1,2,3])
for n in G.nodes():
    print(n)
G.add_edges_from([(1,2),(1,3)])
for e in G.edges():
    print(e)
print(G.degree())

プリント

1
2
3
(1, 2)
(1, 3)
[(1, 2), (2, 1), (3, 1)]#1这个点有两条边连着,2、3只有一条边连着

ビデオネットワーク5図。

from matplotlib import pyplot as plt
import networkx as nx
G=nx.Graph()
G.add_nodes_from([1,2,3])
G.add_edges_from([(1,2),(1,3)])
nx.draw_networkx(G)
plt.show()

結果
ここに画像を挿入説明

三、使用networkxモジュールのプロパティとメソッド

1.図。

degree(G[, nbunch, weight]):返回单个节点或nbunch节点的度数视图。 

degree_histogram(G):返回每个度值的频率列表。

density(G):返回图的密度。

info(G[, n]):打印图G或节点n的简短信息摘要。

create_empty_copy(G[, with_data]):返回图G删除所有的边的拷贝。

is_directed(G):如果图是有向的,返回true。

add_star(G_to_add_to, nodes_for_star, **attr):在图形G_to_add_to上添加一个星形。

add_path(G_to_add_to, nodes_for_path, **attr):在图G_to_add_to中添加一条路径。

add_cycle(G_to_add_to, nodes_for_cycle, **attr):向图形G_to_add_to添加一个循环。

2.ノード

nodes(G):在图节点上返回一个迭代器。

number_of_nodes(G):返回图中节点的数量。

all_neighbors(graph, node):返回图中节点的所有邻居。

non_neighbors(graph, node):返回图中没有邻居的节点。

common_neighbors(G, u, v):返回图中两个节点的公共邻居。

3.サイド

edges(G[, nbunch]):返回与nbunch中的节点相关的边的视图。

number_of_edges(G):返回图中边的数目。

non_edges(graph):返回图中不存在的边。
公開された51元の記事 ウォンの賞賛184 ・は 30000 +を見て

おすすめ

転載: blog.csdn.net/CUFEECR/article/details/103007712