猿问

如何在 CSV 文件中导入 csv 格式的邻接矩阵主题标签网络?

我的主题标签共现网络以 CSV 格式存储为邻接矩阵,如下所示。


,#A,#B,#C,#D,#E,#F,#G,#H,#I,#J,#K

#A,0,1,1,0,1,1,1,1,0,1,0

#B,1,0,0,0,1,1,1,1,0,1,0

#C,1,0,0,0,1,1,1,1,0,1,0

...

然后我使用此页面作为参考, 从 CSV 文件中的邻接矩阵绘制 NetworkX 图形

我想将此矩阵导入到networkx中,我尝试了以下方法:

import numpy as np

import networkx as nx

import matplotlib.pyplot as plt

from numpy import genfromtxt

import numpy as np


mydata = genfromtxt('data.csv', delimiter=',')

但我只得到这个:


print(mydata)

print(type(mydata))


[nan nan]

<class 'numpy.ndarray'>

如何正确导入数据,我想使用python管道计算网络中每个节点的度中心性。导入是第一步。


智慧大石
浏览 105回答 2
2回答

慕工程0101907

该numpy.genfromtxt函数有一个名为 comments 的可选参数,默认设置为"#"。comments&nbsp;:&nbsp;str,&nbsp;optional &nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;character&nbsp;used&nbsp;to&nbsp;indicate&nbsp;the&nbsp;start&nbsp;of&nbsp;a&nbsp;comment. &nbsp;&nbsp;&nbsp;&nbsp;All&nbsp;the&nbsp;characters&nbsp;occurring&nbsp;on&nbsp;a&nbsp;line&nbsp;after&nbsp;a&nbsp;comment&nbsp;are&nbsp;discarded换句话说,numpy 认为您的整个文件包含注释和空行。您必须重命名行和列标识符,或者必须将 comments 参数设置为其他值,例如"*"

紫衣仙女

.csv您可能会发现将文件读入 pandas 数据帧并从中创建图形要简单得多,其中直接包含节点名称:import pandas as pddf = pd.read_csv(s, sep=',')G = nx.from_pandas_adjacency(df)使用上述数据框的示例运行:from io import StringIOs = StringIO('''#A,#B,#C,#D,#E,#F,#G,#H,#I,#J,#K#A,0,1,1,0,1,1,1,1,0,1,0#B,1,0,0,0,1,1,1,1,0,1,0#C,1,0,0,0,1,1,1,1,0,1,0''')df = pd.read_csv(s, sep=',')G = nx.from_pandas_adjacency(df)G.edges()# EdgeView([('#A', '#B'), ('#A', '#C')])&nbsp;由于数据框必须是方形的,因此数据框已被剪切到第三列。但希望您看到这种方式会变得更加容易。
随时随地看视频慕课网APP

相关分类

Python
我要回答