networkx.Graph.copy
的用法。用法:
Graph.copy(as_view=False)
返回圖表的副本。
默認情況下,copy 方法返回圖形和屬性的獨立淺拷貝。也就是說,如果一個屬性是一個容器,則該容器由原始和副本共享。對新容器使用 Python 的
copy.deepcopy
。如果
as_view
為True,則返回視圖而不是副本。- as_view:布爾,可選(默認=假)
如果為 True,則返回的 graph-view 提供原始圖形的隻讀視圖,而不實際複製任何數據。
- G:圖形
圖的副本。
參數:
返回:
注意:
所有副本都再現了圖結構,但數據屬性可能以不同的方式處理。人們可能需要四種類型的圖表副本。
Deepcopy - A “deepcopy” 複製圖形結構以及所有數據屬性和它們可能包含的任何對象。整個圖形對象是新的,因此副本中的更改不會影響原始對象。 (參見 Python 的 copy.deepcopy)
數據引用(淺) - 對於淺拷貝,複製圖結構,但邊、節點和圖屬性字典是對原始圖中的引用。這可以節省時間和內存,但如果您更改一個圖表中的屬性並更改另一個圖表中的屬性,則可能會導致混亂。 NetworkX 不提供這種級別的淺拷貝。
獨立淺層 - 此副本創建新的獨立屬性字典,然後對屬性進行淺層副本。也就是說,作為容器的任何屬性都在新圖和原始圖之間共享。這正是
dict.copy()
提供的。您可以使用以下方式獲取此樣式副本:>>> G = nx.path_graph(5) >>> H = G.copy() >>> H = G.copy(as_view=False) >>> H = nx.Graph(G) >>> H = G.__class__(G)
新鮮數據 - 對於新鮮數據,在創建新的空數據屬性字典時複製圖形結構。結果圖獨立於原始圖,它沒有邊、節點或圖屬性。未啟用新副本。而是使用:
>>> H = G.__class__() >>> H.add_nodes_from(G) >>> H.add_edges_from(G.edges)
查看 - 受dict-views 的啟發,graph-views 就像原始圖形的隻讀版本一樣,提供原始結構的副本,而無需任何內存來複製信息。
有關淺拷貝和深拷貝的更多信息,請參閱 Python 拷貝模塊 https://docs.python.org/3/library/copy.html 。
例子:
>>> G = nx.path_graph(4) # or DiGraph, MultiGraph, MultiDiGraph, etc >>> H = G.copy()
相關用法
- Python NetworkX Graph.clear用法及代碼示例
- Python NetworkX Graph.clear_edges用法及代碼示例
- Python NetworkX Graph.size用法及代碼示例
- Python NetworkX Graph.to_undirected用法及代碼示例
- Python NetworkX Graph.degree用法及代碼示例
- Python NetworkX Graph.number_of_edges用法及代碼示例
- Python NetworkX Graph.add_weighted_edges_from用法及代碼示例
- Python NetworkX Graph.subgraph用法及代碼示例
- Python NetworkX Graph.__contains__用法及代碼示例
- Python NetworkX Graph.nodes用法及代碼示例
- Python NetworkX Graph.number_of_nodes用法及代碼示例
- Python NetworkX Graph.add_edge用法及代碼示例
- Python NetworkX Graph.has_node用法及代碼示例
- Python NetworkX Graph.add_node用法及代碼示例
- Python NetworkX Graph.edges用法及代碼示例
- Python NetworkX Graph.__len__用法及代碼示例
- Python NetworkX Graph.remove_nodes_from用法及代碼示例
- Python NetworkX Graph.remove_edge用法及代碼示例
- Python NetworkX Graph.__init__用法及代碼示例
- Python NetworkX Graph.remove_node用法及代碼示例
- Python NetworkX Graph.edge_subgraph用法及代碼示例
- Python NetworkX Graph.__iter__用法及代碼示例
- Python NetworkX Graph.to_directed用法及代碼示例
- Python NetworkX Graph.order用法及代碼示例
- Python NetworkX Graph.add_edges_from用法及代碼示例
注:本文由純淨天空篩選整理自networkx.org大神的英文原創作品 networkx.Graph.copy。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。