如何在 CSV 文件中导入 csv 格式的邻接矩阵标签网络?
How to import csv format Adjacency Matrix hashtag network in CSV file?
我的标签共现网络存储为 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
...
那我就用这个页面作为参考
我想将这个矩阵导入到 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 管道计算每个节点的度中心性 network.And 导入是第一步。
您可能会发现将 .csv
文件读入 pandas 数据帧并从中创建一个图形要简单得多,直接包括节点名称:
import pandas as pd
df = pd.read_csv(s, sep=',')
G = nx.from_pandas_adjacency(df)
使用上述数据帧的示例 运行:
from io import StringIO
s = 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')])
数据框已被裁剪到第 3 列,因为数据框必须是方形的。但希望你能明白这种方式会如何变得更容易。
numpy.genfromtxt
函数有一个名为 comments 的可选参数,默认设置为 "#"
。
comments : str, optional
The character used to indicate the start of a comment.
All the characters occurring on a line after a comment are discarded
换句话说,numpy 认为您的整个文件都包含注释和空行。
您将不得不重命名您的行和列标识符,或者您必须将评论参数设置为其他值,例如 "*"
我的标签共现网络存储为 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
...
那我就用这个页面作为参考
我想将这个矩阵导入到 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 管道计算每个节点的度中心性 network.And 导入是第一步。
您可能会发现将 .csv
文件读入 pandas 数据帧并从中创建一个图形要简单得多,直接包括节点名称:
import pandas as pd
df = pd.read_csv(s, sep=',')
G = nx.from_pandas_adjacency(df)
使用上述数据帧的示例 运行:
from io import StringIO
s = 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')])
数据框已被裁剪到第 3 列,因为数据框必须是方形的。但希望你能明白这种方式会如何变得更容易。
numpy.genfromtxt
函数有一个名为 comments 的可选参数,默认设置为 "#"
。
comments : str, optional
The character used to indicate the start of a comment.
All the characters occurring on a line after a comment are discarded
换句话说,numpy 认为您的整个文件都包含注释和空行。
您将不得不重命名您的行和列标识符,或者您必须将评论参数设置为其他值,例如 "*"