目前点文件是两列Excel代码,在进行复杂网络运算时需要转化成邻接矩阵。我在网上找了一个代码,稍微修改了下,亲测可以成功转化。
另外,有没有亲可以指导下在哪里可以学习复杂网络鲁棒性计算的代码,急求!!!
import csv
import numpy as np
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
f = open('D:/ii/R/C3000.csv')
#数据两列(id1,id2),每一行表示这两个节点之间存在边
data = [tuple(map(int, row)) for row in csv.reader(f)]#读取数据
n = max(max(id1, id2) for id1, id2 in data)
print(n)#最大节点数对应邻接矩阵的行列数
matrix = np.zeros((n,n))#生成n行n列的全0数组
for id1, id2 in data:
matrix[id2-1][id1-1] = 1#遍历数据,将对应关系转化为1
matrix[id1-1][id2-1] = 1 #邻接矩阵对角对称
print(matrix)
df = pd.DataFrame(matrix)
df.to_csv("D:/ii/R/Adjacency Matrix.csv")
#生成邻接矩阵并存储
转化成邻接矩阵后,python代码对于点的计算是从0开始的



