將作者列表進行處理,並完成統計。具體步驟如下:
圖是複雜網路研究中的乙個重要概念。graph是用點和線來刻畫離散事物集合中的每對事物間以某種方式相聯絡的數學模型。graph在現實世界中隨處可見,如交通運輸圖、旅遊圖、流程圖等。利用圖可以描述現實生活中的許多事物,如用點可以表示交叉口,點之間的連線表示路徑,這樣就可以輕而易舉的描繪出乙個交通運輸網路。
迪傑斯特拉路徑:.從乙個源點到其它各點的最短路徑,可使用迪傑斯特拉演算法來求最短路徑;
連通圖:在乙個無向圖 g 中,若從頂點i到頂點j有路徑相連,則稱i和j是連通的。如果 g 是有向圖,那麼連線i和j的路徑中所有的邊都必須同向。如果圖中任意兩點都是連通的,那麼圖被稱作連通圖。如果此圖是有向圖,則稱為強連通圖。
對於其他圖演算法,可以在networkx和igraph兩個庫中找
首先讀取我們想要的資料:
# 匯入所需的package
import seaborn as sns #用於畫圖
from bs4 import beautifulsoup #用於爬取arxiv的資料
import re #用於正規表示式,匹配字串的模式
import requests #用於網路連線,傳送網路請求,使用網域名稱獲取對應資訊
import json #讀取資料,我們的資料為json格式的
import pandas as pd #資料處理,資料分析
import matplotlib.pyplot as plt #畫圖工具
#使用with語句優勢:1.自動關閉檔案控制代碼;2.自動顯示(處理)檔案讀取資料異常
with open(json_filename, 'r') as f:
for idx, line in enumerate(f):
d = json.loads(line)
d =
data = pd.dataframe(data) #將list變為dataframe格式,方便使用pandas進行分析
import networkx as nx
# 建立無向圖
g = nx.graph()
# 只用五篇**進行構建
for row in data.iloc[:100].itertuples():
authors = row[1]
authors = [' '.join(x[:-1]) for x in authors]
# 第乙個作者 與 其他作者鏈結
for author in authors[1:]:
g.add_edge(authors[0],author) # 新增節點2,3並鏈結23節點
no path
如果我們500片**構建圖,則可以得到更加完整作者關係,並選擇最大聯通子圖進行繪製,折線圖為子圖節點度值。
# 計算**關係中有多少個聯通子圖
Task 作者資訊關聯
任務說明 學習主題 作者關聯 資料建模任務 對 作者關係進行建模,統計最常出現的作者關係 學習內容 構建作者關係圖,挖掘作者關係 學習成果 作者知識圖譜 圖關係挖掘 資料處理步驟 圖型別圖統計指標 迪傑斯特拉路徑 從乙個源點到其它各點的最短路徑,可使用迪傑斯特拉演算法來求最短路徑 連通圖 在乙個無向...
TASK05結構陣列
結構陣列與單元陣列的轉換 單元陣列的處理 實戰演練 總結思考 a.b c a為結構陣列名,b為欄位名,c為此欄位的內容 如果使用結構陣列函式建立,則書寫格式為 array name struct field1 val1,field2 val2,array name為結構陣列名,field為欄位名,v...
pandas學習 Task05合併
問題二 merge ordered和merge asof的作用是什麼?和merge是什麼關係?merge ordered 根據官方說明,適用與帶時間序列的資料,自帶ffill bfill 引數,可以方便填充 merge asof 模糊匹配版的merge 問題三 請構造乙個多級索引與多級索引合併的例子...