>我通过将 4 个图合并为
WaterWayNWK=nx.from_pandas_edgelist(WaterWayUID,'Node-A','Node-B',['Distance'])
RoadNWK=nx.from_pandas_edgelist(Road_ODUID,'Node-A','Node-B',['Distance'])
RailNWK=nx.from_pandas_edgelist(RailUID,'Node-A','Node-B',['Distance'])
TerminalNWK=nx.from_pandas_edgelist(TerminalUID,'Node-A','Node-B',['Distance'])
Network_lst=[WaterWayNWK,RoadNWK,RailNWK,TerminalNWK]
SynchoromodalNWK=nx.compose_all(Network_lst)
然后我将其分配给一个空的虚拟图
Dummy=nx.Graph()
Dummy=SynchoromodalNWK
最后,我正在从新图中删除节点并计算两者中的边数。
print('before removal:',len(SynchoromodalNWK.edges()))
Dummy.remove_nodes_from(['RI3_1177', 'WI3_1177'])
print(len(Dummy.edges()))
print(len(SynchoromodalNWK.edges()))
输出为:-
runfile('C:/Users/NaVnEeT/Desktop/adj/untitled2.py',
wdir='C:/Users/NaVnEeT/Desktop/adj')
before removal: 2343
2339
2339
为什么从原始边缘中删除?
在 Python 中,变量名称绑定到值。
Dummy=nx.Graph()
将变量名Dummy
绑定到值nx.Graph()
。
赋值Dummy=SynchoromodalNWK
Dummy
重新绑定到值SynchoromodalNWK
, 渲染第一个赋值掘金。
所以在这次作业之后,Dummy is SynchoromodalNWK
是真的。两个变量,Dummy
和SynchoromodalNWK
都"绑定"(或者你可以说"引用")相同的值。 修改Dummy
修改SynchoromodalNWK
。
如果您希望Dummy
是SynchoromodalNWK
的副本(以便修改Dummy
不会影响SynchoromodalNWK
),请使用
Dummy = SynchoromodalNWK.copy()
Dummy=nx.Graph()
是没有必要的。