本文簡要介紹
networkx.convert_matrix.to_scipy_sparse_matrix
的用法。用法:
to_scipy_sparse_matrix(G, nodelist=None, dtype=None, weight='weight', format='csr')
將圖形鄰接矩陣作為SciPy 稀疏矩陣返回。
- G:圖形
NetworkX 圖用於構造稀疏矩陣。
- nodelist:列表,可選
行和列根據
nodelist
中的節點進行排序。如果nodelist
為無,則排序由 G.nodes() 生成。- dtype:NumPy 數據類型,可選
用於初始化數組的有效 NumPy dtype。如果無,則使用 NumPy 默認值。
- weight:字符串或無可選(默認='weight')
保存用於邊權重的數值的邊屬性。如果 None 則所有邊權重為 1。
- format:{‘bsr’, ‘csr’, ‘csc’, ‘coo’, ‘lil’, ‘dia’, ‘dok’} 中的字符串
要返回的矩陣的類型(默認‘csr’)。對於某些算法,稀疏矩陣的不同實現可以表現更好。詳細信息請參見[1]。
- A:SciPy 稀疏矩陣
圖鄰接矩陣。
參數:
返回:
注意:
對於有向圖,矩陣條目 i,j 對應於從 i 到 j 的邊。
使用參數權重中保存的邊屬性填充矩陣條目。當一條邊沒有該屬性時,該條目的值為 1。
對於多條邊,矩陣值是邊權重的總和。
當
nodelist
不包含G
中的每個節點時,鄰接矩陣由G
的子圖構建,該子圖由nodelist
中的節點誘導。用於圖中自循環邊的約定是將對角矩陣條目值分配給邊的權重屬性(如果邊沒有權重屬性,則為數字 1)。如果需要將邊權重加倍的替代約定,則可以按如下方式修改生成的 Scipy 稀疏矩陣:
>>> G = nx.Graph([(1, 1)]) >>> A = nx.to_scipy_sparse_matrix(G) >>> print(A.todense()) [[1]] >>> A.setdiag(A.diagonal() * 2) >>> print(A.todense()) [[2]]
參考:
- 1
Scipy Dev. References, “Sparse Matrices”, https://docs.scipy.org/doc/scipy/reference/sparse.html
例子:
>>> G = nx.MultiDiGraph() >>> G.add_edge(0, 1, weight=2) 0 >>> G.add_edge(1, 0) 0 >>> G.add_edge(2, 2, weight=3) 0 >>> G.add_edge(2, 2) 1 >>> S = nx.to_scipy_sparse_matrix(G, nodelist=[0, 1, 2]) >>> print(S.todense()) [[0 2 0] [1 0 0] [0 0 4]]
相關用法
- Python NetworkX to_scipy_sparse_array用法及代碼示例
- Python NetworkX to_sparse6_bytes用法及代碼示例
- Python NetworkX to_prufer_sequence用法及代碼示例
- Python NetworkX to_numpy_recarray用法及代碼示例
- Python NetworkX to_dict_of_dicts用法及代碼示例
- Python NetworkX to_pydot用法及代碼示例
- Python NetworkX to_vertex_cover用法及代碼示例
- Python NetworkX to_numpy_matrix用法及代碼示例
- Python NetworkX to_graph6_bytes用法及代碼示例
- Python NetworkX to_pandas_adjacency用法及代碼示例
- Python NetworkX to_nested_tuple用法及代碼示例
- Python NetworkX to_networkx_graph用法及代碼示例
- Python NetworkX to_numpy_array用法及代碼示例
- Python NetworkX to_agraph用法及代碼示例
- Python NetworkX to_pandas_edgelist用法及代碼示例
- Python NetworkX topological_generations用法及代碼示例
- Python NetworkX topological_sort用法及代碼示例
- Python NetworkX transitive_closure_dag用法及代碼示例
- Python NetworkX tree_graph用法及代碼示例
- Python NetworkX threshold_accepting_tsp用法及代碼示例
- Python NetworkX tensor_product用法及代碼示例
- Python NetworkX transitivity用法及代碼示例
- Python NetworkX triangles用法及代碼示例
- Python NetworkX triad_graph用法及代碼示例
- Python NetworkX transitive_closure用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.convert_matrix.to_scipy_sparse_matrix。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。