图相关的基本知识代码
# -*- encoding: utf-8 -*-
# @time: 2022/2/10 12:51
# @author: chenTao
# @file: Graph_basic.py
import numpy as np
import pandas as pd
import networkx as nx
edges = pd.DataFrame()
edges['sources'] = [1,1,1,2,2,3,3,4,4,5,5,5]
edges['targets'] = [2,4,5,3,1,2,5,1,5,1,3,4]
edges['weights'] = [1,1,1,1,1,1,1,1,1,1,1,1]
G = nx.from_pandas_edgelist(edges,source='sources',target='targets',edge_attr='weights')
#degree
print(nx.degree(G))
#连通分量
print(list(nx.connected_components(G)))
#图直径
print(nx.diameter(G))
#度中心性 = (N_degree)/(n-1);n图中结点数量
print(nx.degree_centrality(G))
#特征向量中心性 A*x= 入*x
#第一,按照公式求出特征值和特征向量, 选择具有最大特征值对应的特征向量
# 该特征向量对应的每个值就是对应节点的特征向量中心性
print(nx.eigenvector_centrality(G))
# 中介中心性 betweenness = (经过该节点的最短路径的条数之和 )/(其余两两节点的最短路径 )
#分母不是最短路径而是其余两两节点的组合情况,比如A到其余四个节点四种组合,一共有五个这样的节点 就是四乘五
print(nx.betweenness_centrality(G))
#closeness
print(nx.closeness_centrality(G))
#pagerank
print(nx.pagerank(G))
#HITS
print(nx.hits(G))
注: