Python networkxでグラフ構造を簡単に可視化・解析する方法

Pythonでグラフ構造(ノードとエッジからなるネットワーク)を扱いたいなら、networkxは非常に便利なライブラリです。

networkxとは何か、どんな用途に使えるのか、そして基本的な使い方についてと、最短経路の探索や中心性の計算といった解析もサンプルコード付きで紹介


✅ networkxとは?どんなことができるの?

networkxは、グラフ(ネットワーク)構造をPythonで扱うためのライブラリです。以下のような分野で活用されています:

  • ソーシャルネットワーク分析(SNSのユーザー関係)
  • 道路・交通ネットワークの最適化
  • 通信・電力ネットワークの構造解析
  • 知識グラフや推薦システムの基盤構築

🔰 networkxのインストール方法

まずはpipでインストールしましょう:

pip install networkx

🛠️ networkxの基本的な使い方

1. グラフの作成とノード・エッジの追加

import networkx as nx
import matplotlib.pyplot as plt

# 無向グラフの作成
G = nx.Graph()

# ノードとエッジの追加
G.add_nodes_from(["A", "B", "C", "D"])
G.add_edges_from([("A", "B"), ("B", "C"), ("C", "D")])

# グラフの可視化
nx.draw(G, with_labels=True)
plt.show()

2. グラフ構造の確認

print("ノード一覧:", G.nodes())
print("エッジ一覧:", G.edges())
print("各ノードの次数:", dict(G.degree()))

🔍 グラフの解析も簡単に!

3. 最短経路の計算

path = nx.shortest_path(G, source="A", target="D")
print("AからDへの最短経路:", path)

4. ノードの中心性(centrality)の計算

centrality = nx.degree_centrality(G)
print("各ノードの中心性スコア:", centrality)

🌐 他にもできること一覧

機能説明
有向グラフの作成nx.DiGraph()を使えば方向付きのエッジを持つグラフも作成可能
重み付きグラフエッジにweight属性を付けて、コストや距離を表現
ネットワークアルゴリズムPageRank、最大フロー、クラスタリングなどもサポート
グラフの保存・読み込みGML、GraphML、JSON形式での保存と読込が可能

networkxはPythonでネットワーク分析を行う強力ツール

networkxを使えば、Pythonでネットワークの可視化、解析、探索などが直感的に行えます。特にソーシャルグラフ、インフラネットワーク、推薦アルゴリズムなど、現代の多くのアプリケーションに応用可能です。

MBTI診断 | あなたの性格タイプを分析

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA