資料
用於載入和儲存圖形的工具。
邊緣串列
- sknetwork.data.from_edge_list(edge_list: ndarray | List[Tuple], directed: bool = False, bipartite: bool = False, weighted: bool = True, reindex: bool = False, shape: tuple | None = None, sum_duplicates: bool = True, matrix_only: bool | None = None) Dataset | csr_matrix [原始碼]
從邊緣清單載入圖形。
- 參數:
edge_list (Union[np.ndarray, List[Tuple]]) - 要轉換的邊緣清單,表示為大小為 (n, 2) 或 (n, 3) 的 NumPy 陣列,或長度為 2 或 3 的元組清單。
directed (布林) – 如果
True
,則將圖形視為有向的。bipartite (布林) – 如果
True
,則傳回一個二鄰接矩陣。weighted (布林) – 如果
True
,則傳回一個加權圖形。reindex (布林) – 如果
True
,則重新索引節點並傳回原始節點索引作為名稱。如果節點不是整數,則執行重新索引。shape (元組) – 鄰接或二鄰接矩陣的形狀。未指定或節點重新索引時,該形狀是與節點索引最相容的小形狀。
sum_duplicates (布林) – 如果
True
(預設),則將重複邊緣的權重加總。否則,每個邊緣的權重都是這個邊緣第一次出現時的權重。matrix_only (布林) – 如果
True
,則僅傳回鄰接或二鄰接矩陣。否則,傳回一個資料集
物件,包含圖形屬性 (例如,節點名稱)。未指定 (預設) 時,選取最合適的格式。
- 傳回:
圖形
- 傳回類型:
資料集
(包括節點名稱) 或稀疏矩陣
範例
>>> edges = [(0, 1), (1, 2), (2, 0)] >>> adjacency = from_edge_list(edges) >>> adjacency.shape (3, 3) >>> edges = [('Alice', 'Bob'), ('Bob', 'Carol'), ('Carol', 'Alice')] >>> graph = from_edge_list(edges) >>> adjacency = graph.adjacency >>> adjacency.shape (3, 3) >>> print(graph.names) ['Alice' 'Bob' 'Carol']
鄰接清單
- sknetwork.data.from_adjacency_list(adjacency_list: 列表[列表] | 字典[字串, 列表], 有向: 布林 = 假, 二部: 布林 = 假, 帶權重: 布林 = 真, 重新索引: 布林 = 假, 形狀: 元組 | 無 = 無, 合併重複項: 布林 = 真, 僅矩陣: 布林 | 無 = 無) 資料集 | csr_矩陣 [來源程式碼]
從鄰接清單載入圖表。
- 參數:
鄰接清單 (聯集[清單[清單], 字典[字串, 清單]]) – 鄰接清單 (每個節點的鄰居) 或字典 (節點:鄰居)。
directed (布林) – 如果
True
,則將圖形視為有向的。bipartite (布林) – 如果
True
,則傳回一個二鄰接矩陣。weighted (布林) – 如果
True
,則傳回一個加權圖形。reindex (布林) – 如果
True
,則重新索引節點並傳回原始節點索引作為名稱。如果節點不是整數,則執行重新索引。shape (元組) – 鄰接或二鄰接矩陣的形狀。未指定或節點重新索引時,該形狀是與節點索引最相容的小形狀。
sum_duplicates (布林) – 如果
True
(預設),則將重複邊緣的權重加總。否則,每個邊緣的權重都是這個邊緣第一次出現時的權重。matrix_only (布林) – 如果
True
,則僅傳回鄰接或二鄰接矩陣。否則,傳回一個資料集
物件,包含圖形屬性 (例如,節點名稱)。未指定 (預設) 時,選取最合適的格式。
- 傳回:
圖形
- 傳回類型:
資料集
或稀疏矩陣
範例
>>> edges = [[1, 2], [0, 2, 3], [0, 1]] >>> adjacency = from_adjacency_list(edges) >>> adjacency.shape (4, 4)
檔案
查看 教學 以瞭解如何從資料框匯入圖形。
- sknetwork.data.from_csv(file_path: str, delimiter: str | None = None, sep: str | None = None, comments: str = '#%', data_structure: str | None = None, directed: bool = False, bipartite: bool = False, weighted: bool = True, reindex: bool = False, shape: tuple | None = None, sum_duplicates: bool = True, matrix_only: bool | None = None) Dataset | csr_matrix [source]
從 CSV 或 TSV 檔案載入圖形。可以指定分隔符號 (例如,空白值為 ‘ ‘)。
- 參數:
file_path (字串) – CSV 檔案的路徑。
delimiter (字串) – 檔案中使用的分隔符號。如果未指定,則會猜測。
sep (字串) – 分隔符號的別名。
comments (字串) – 註解行的字元。
data_structure (字串) – 如果為 ‘edge_list’,則將檔案中的每一行視為邊緣 (大小為 2 或 3 的元組)。如果為 ‘adjacency_list’,則將檔案中的每一行視為鄰接清單 (鄰居清單,依節點索引順序;空行表示沒有鄰居)。如果為 ‘adjacency_dict’,則將檔案中的每一行視為鄰接字典,其中鍵為第一欄提供 (節點:鄰居清單)。如果
None
(預設值),則會從檔案的前幾行猜測 data_structure。directed (布林) – 如果
True
,則將圖形視為有向的。bipartite (布林值) – 如果
True
,則傳回形狀為 (n1, n2) 的雙鄰接矩陣。weighted (布林值) – 如果
True
,則傳回加權圖形 (例如,計算每個邊緣出現的次數)。reindex (布林) – 如果
True
,則重新索引節點並傳回原始節點索引作為名稱。如果節點不是整數,則執行重新索引。shape (元組) – 鄰接或二鄰接矩陣的形狀。未指定或節點重新索引時,該形狀是與節點索引最相容的小形狀。
sum_duplicates (布林) – 如果
True
(預設),則將重複邊緣的權重加總。否則,每個邊緣的權重都是這個邊緣第一次出現時的權重。matrix_only (布林) – 如果
True
,則僅傳回鄰接或二鄰接矩陣。否則,傳回一個資料集
物件,包含圖形屬性 (例如,節點名稱)。未指定 (預設) 時,選取最合適的格式。
- 傳回:
圖形
- 傳回類型:
資料集
或稀疏矩陣
- sknetwork.data.from_graphml(file_path: str, weight_key: str = 'weight', max_string_size: int = 512) 資料集 [source]
從 GraphML 檔案載入圖形。
不支援超邊緣和巢狀圖形。
- 參數:
file_path (str) – GraphML 檔案的路徑。
weight_key (str) – 作為邊緣權重的值的金鑰
max_string_size (int) – 資料中字串特徵的最大大小
- 傳回:
data – 資料集中的資料,以緊縮稀疏矩陣 (CSR) 作為鄰接矩陣。
- 傳回類型:
資料集
資料集
- sknetwork.data.load_netset(name: str | None = None, data_home: str | Path | None = None, verbose: bool = True) Dataset | None [原始程式碼]
從 NetSet 蒐集 載入資料集。
- 參數:
name (str) – 資料集的名稱(全部小寫)。範例包括「openflights」、「cinema」和「wikivitals」。
data_home (str 或
pathlib.Path
) – 要用於資料集儲存的資料夾。這個資料夾必須是空的或包含其他資料夾(資料集);檔案會被移除。verbose (bool) – 啟用詳細資訊。
- 傳回:
dataset – 傳回的資料集。
- 傳回類型:
資料集
- sknetwork.data.load_konect(name: str, data_home: str | Path | None = None, auto_numpy_bundle: bool = True, verbose: bool = True) Dataset [原始碼]
從Konect 資料庫載入資料集。
- 參數:
name (字串) – 資料集名稱,正如 Konect 網站所示 (例如 Zachary Karate club 資料集的相應名稱為
'ucidata-zachary'
)。data_home (字串或
pathlib.Path
) – 用於儲存資料集的資料夾。auto_numpy_bundle (布林值) – 資料集是否應儲存在其預設格式 (False) 或使用 Numpy 檔案加速後續存取資料集 (True)。
verbose (bool) – 啟用詳細資訊。
- 傳回:
dataset –
具有下列屬性的物件
adjacency 或 biadjacency: 資料集的鄰接矩陣/二部鄰接矩陣
meta: 存放 Konect 指定的元資料的字典
Konect 指定的每個屬性 (ent.* 檔案)
- 傳回類型:
資料集
備註
如有,Dataset 類別的屬性 meta 用於儲存資料集的資訊。無論如何,meta 都具有屬性 name,如果沒有指定,則等於傳遞給這個函式的資料集名稱。
參考
Kunegis, J. (2013 年 5 月)。Konect:Koblenz 網路集合。發表於第 22 屆萬維網國際會議議程中 (第 1343-1350 頁)。
你也可以在 NetRep 上找到一些資料集。
玩具圖形
- sknetwork.data.house(metadata: bool = False) csr_matrix | Dataset [source]
屋子圖。
無向圖
5 個節點,6 條邊
- 參數:
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import house >>> adjacency = house() >>> adjacency.shape (5, 5)
- sknetwork.data.bow_tie(metadata: bool = False) csr_matrix | Dataset [source]
蝴蝶結圖。
無向圖
5 個節點,6 條邊
- 參數:
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import bow_tie >>> adjacency = bow_tie() >>> adjacency.shape (5, 5)
- sknetwork.data.karate_club(metadata: bool = False) csr_matrix | Dataset [source]
空手道社圖形。
無向圖
34 個節點,78 條邊
2 個標籤
- 參數:
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(標籤、位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import karate_club >>> adjacency = karate_club() >>> adjacency.shape (34, 34)
參考
https://en.wikipedia.org/wiki/Zachary%27s_karate_club Zachary 的空手道社圖形
- sknetwork.data.miserables(metadata: 布林 = 假) csr_矩陣 | 資料集 [來源]
維克多·雨果小說《悲慘世界》中的人物共同出現圖。
無向圖
77 個節點,508 條邊
角色名稱
- 參數:
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。- 傳回:
相鄰矩陣或圖 - 帶有中繼資料(名稱、位置)的相鄰矩陣或圖。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import miserables >>> adjacency = miserables() >>> adjacency.shape (77, 77)
- sknetwork.data.painters(metadata: 布林 = 假) csr_矩陣 | 資料集 [來源]
維基百科上一些著名畫家之間的連結圖。
有向圖
14 個節點,50 條邊
畫家名稱
- 參數:
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。- 傳回:
相鄰矩陣或圖 - 帶有中繼資料(名稱、位置)的相鄰矩陣或圖。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import painters >>> adjacency = painters() >>> adjacency.shape (14, 14)
- sknetwork.data.star_wars(metadata: 布林 = 假) csr_矩陣 | 資料集 [來源]
一幅雙部圖,將一些《星際大戰》中的反派角色與他們所出現的電影連接起來。
雙部圖
7 個節點(4 個反派角色,3 部電影),8 條邊
反派角色與電影名稱
- 參數:
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。- 傳回:
雙鄰接矩陣或圖 - 帶有中繼資料(名稱)的雙鄰接矩陣或圖。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import star_wars >>> biadjacency = star_wars() >>> biadjacency.shape (4, 3)
- sknetwork.data.movie_actor(metadata: bool = False) csr_matrix | Dataset [source]
雙邊圖連結電影與一些主演的演員。
雙部圖
32 個節點(15 部電影、17 名演員)、43 條邊
電影(列)和演員(欄)的名稱
- 參數:
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。- 傳回:
雙鄰接矩陣或資料集 – 雙鄰接矩陣或資料集,包含元資料(電影和演員的名稱)。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import movie_actor >>> biadjacency = movie_actor() >>> biadjacency.shape (15, 17)
- sknetwork.data.art_philo_science(metadata: bool = False) csr_matrix | Dataset [source]
維基百科上 30 篇文章(10 位藝術家、10 位哲學家、10 位科學家)之間的連結。
有向圖
30 個節點、240 條邊
各篇文章的名稱
元資料包括這些文章摘要中出現的 11 個字的出現次數。
- 參數:
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。- 傳回:
鄰接矩陣或圖形 – 鄰接矩陣或圖形,包含元資料(名稱、位置、標籤、names_labels、雙鄰接、names_col)。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import art_philo_science >>> adjacency = art_philo_science() >>> adjacency.shape (30, 30)
模型
- sknetwork.data.linear_graph(n: int = 3, metadata: bool = False) csr_matrix | Dataset [source]
線性圖形(未導向)。
- 參數:
n (int) – 節點數目。
metadata (bool) – 如果是
True
,傳回一個有 metadata 的 Dataset 物件。
- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import linear_graph >>> adjacency = linear_graph(5) >>> adjacency.shape (5, 5)
- sknetwork.data.linear_digraph(n: int = 3, metadata: bool = False) csr_matrix | Dataset [source]
線性圖形(有向)。
- 參數:
n (int) – 節點數目。
metadata (bool) – 如果是
True
,傳回一個有 metadata 的 Dataset 物件。
- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import linear_digraph >>> adjacency = linear_digraph(5) >>> adjacency.shape (5, 5)
- sknetwork.data.cyclic_graph(n: int = 3, metadata: bool = False) csr_matrix | Dataset [來源碼]
循環圖(無向)。
- 參數:
n (int) – 節點數目。
metadata (bool) – 如果是
True
,傳回一個有 metadata 的 Dataset 物件。
- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import cyclic_graph >>> adjacency = cyclic_graph(5) >>> adjacency.shape (5, 5)
- sknetwork.data.cyclic_digraph(n: int = 3, metadata: bool = False) csr_matrix | Dataset [來源碼]
循環圖(有向)。
- 參數:
n (int) – 節點數目。
metadata (bool) – 如果是
True
,傳回一個有 metadata 的 Dataset 物件。
- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import cyclic_digraph >>> adjacency = cyclic_digraph(5) >>> adjacency.shape (5, 5)
- sknetwork.data.格狀(n1: int = 10, n2: int = 10, metatdata: bool = False) csr_matrix | Dataset [來源程式碼]
格狀(無向)。
- 參數:
n1 (int) – 格狀維度。
n2 (int) – 格狀維度。
metadata (bool) – 如果是
True
,傳回一個有 metadata 的 Dataset 物件。
- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import grid >>> adjacency = grid(10, 5) >>> adjacency.shape (50, 50)
- sknetwork.data.erdos_renyi(n: int = 20, p: float = 0.3, directed: bool = False, self_loops: bool = False, seed: int | None = None) csr_matrix [來源程式碼]
Erdos-Renyi 圖形。
- 參數:
n – 節點數。
p – 節點間連線機率。
導向 – 如果
True
,傳回有向圖。自環 – 如果
True
,允許自環。種子 – 隨機產生器的種子(可選)。
- 傳回:
鄰接矩陣。
- 傳回類型:
sparse.csr_matrix
範例
>>> from sknetwork.data import erdos_renyi >>> adjacency = erdos_renyi(7) >>> adjacency.shape (7, 7)
參考
Erdős, P.、Rényi, A. (1959)。On Random Graphs。Publicationes Mathematicae。
- sknetwork.data.block_model(sizes: 可疊代物件, p_in: float | 清單 | ndarray = 0.2, p_out: float = 0.05, directed: 布林值 = False, self_loops: 布林值 = False, metadata: 布林值 = False, seed: 整數 | 無 = 無) csr_matrix | 資料集 [來源]
隨機區塊模型。
- 參數:
尺寸 – 區塊尺寸。
p_in – 區塊內連線可能性。
p_out – 區塊間連線可能性。
導向 – 如果
True
,傳回有向圖。自環 – 如果
True
,允許自環。metadata – 如果
True
,則傳回包含標籤的 Dataset 物件。種子 – 隨機產生器的種子(可選)。
- 傳回:
adjacency or graph – 具有 metadata(標籤)的鄰接矩陣或圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import block_model >>> sizes = np.array([4, 5]) >>> adjacency = block_model(sizes) >>> adjacency.shape (9, 9)
參考
Airoldi, E., Blei, D., Feinberg, S., Xing, E. (2007). Mixed membership stochastic blockmodels. Journal of Machine Learning Research.
- sknetwork.data.albert_barabasi(n: int = 100, degree: int = 3, directed: bool = False, seed: int | None = None) csr_matrix [來源]
Albert-Barabasi 模型。
- 參數:
n (int) – 節點數目。
degree (int) – 進入節點的度數(小於 n)。
directed (bool) – 如果
True
,則傳回一個有向圖形。種子 – 隨機產生器的種子(可選)。
- 傳回:
鄰接矩陣。
- 傳回類型:
sparse.csr_matrix
範例
>>> from sknetwork.data import albert_barabasi >>> adjacency = albert_barabasi(30, 3) >>> adjacency.shape (30, 30)
參考
Albert, R., Barabási, L. (2002). Statistical mechanics of complex networks Reviews of Modern Physics.
- sknetwork.data.watts_strogatz(n: int = 100, degree: int = 6, prob: float = 0.05, seed: int | None = None, metadata: bool = False) csr_matrix | Dataset [source]
Watts-Strogatz 模型。
- 參數:
n – 節點數。
degree – 初始節點度數。
prob – 邊緣修改的機率。
種子 – 隨機產生器的種子(可選)。
metadata - 為
True
,傳回有附帶 metadata 的 Dataset 物件。
- 傳回:
鄰接或圖形 - 鄰接矩陣或有 metadata(位置)的圖形。
- 傳回類型:
Union[sparse.csr_matrix, Dataset]
範例
>>> from sknetwork.data import watts_strogatz >>> adjacency = watts_strogatz(30, 4, 0.02) >>> adjacency.shape (30, 30)
參考
Watts, D., Strogatz, S. (1998). Collective dynamics of small-world networks, Nature.
儲存
- sknetwork.data.save(folder: str | Path, data: csr_matrix | Dataset)[source]
將資料集或 CSR 矩陣儲存在當前目錄中,成為一組 Numpy 和 Pickle 檔案,以便後續載入更快。支援的屬性型態包括稀疏矩陣、NumPy 陣列、字串和物件 Dataset。
- 參數:
資料夾 (字串或
pathlib.Path
) – 捆綁資料夾名稱。資料 (聯集[稀疏.csr_矩陣, 資料集]) – 要儲存的資料。
範例
>>> from sknetwork.data import save >>> dataset = Dataset() >>> dataset.adjacency = sparse.csr_matrix(np.random.random((3, 3)) < 0.5) >>> dataset.names = np.array(['a', 'b', 'c']) >>> save('dataset', dataset) >>> 'dataset' in listdir('.') True
- sknetwork.data.load(資料夾: 字串 | 路徑)[來源]
從當前目錄中先前提出的捆綁資料載入資料集(
save
的反函數)。- 參數:
資料夾 (字串) – 捆綁資料夾名稱。
- 傳回:
資料 – 資料。
- 傳回類型:
資料集
範例
>>> from sknetwork.data import save >>> dataset = Dataset() >>> dataset.adjacency = sparse.csr_matrix(np.random.random((3, 3)) < 0.5) >>> dataset.names = np.array(['a', 'b', 'c']) >>> save('dataset', dataset) >>> dataset = load('dataset') >>> print(dataset.names) ['a' 'b' 'c']