networkx.MultiGraph.copy
的用法。用法:
MultiGraph.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 MultiGraph.clear用法及代码示例
- Python NetworkX MultiGraph.clear_edges用法及代码示例
- Python NetworkX MultiGraph.size用法及代码示例
- Python NetworkX MultiGraph.has_edge用法及代码示例
- Python NetworkX MultiGraph.add_weighted_edges_from用法及代码示例
- Python NetworkX MultiGraph.add_node用法及代码示例
- Python NetworkX MultiGraph.neighbors用法及代码示例
- Python NetworkX MultiGraph.remove_node用法及代码示例
- Python NetworkX MultiGraph.number_of_edges用法及代码示例
- Python NetworkX MultiGraph.__contains__用法及代码示例
- Python NetworkX MultiGraph.remove_nodes_from用法及代码示例
- Python NetworkX MultiGraph.add_nodes_from用法及代码示例
- Python NetworkX MultiGraph.has_node用法及代码示例
- Python NetworkX MultiGraph.edge_subgraph用法及代码示例
- Python NetworkX MultiGraph.__len__用法及代码示例
- Python NetworkX MultiGraph.nodes用法及代码示例
- Python NetworkX MultiGraph.to_undirected用法及代码示例
- Python NetworkX MultiGraph.remove_edges_from用法及代码示例
- Python NetworkX MultiGraph.order用法及代码示例
- Python NetworkX MultiGraph.add_edge用法及代码示例
- Python NetworkX MultiGraph.number_of_nodes用法及代码示例
- Python NetworkX MultiGraph.degree用法及代码示例
- Python NetworkX MultiGraph.__iter__用法及代码示例
- Python NetworkX MultiGraph.update用法及代码示例
- Python NetworkX MultiGraph.edges用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.MultiGraph.copy。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。