我正在尝试从一个文本文件中加载多个矩阵。
我想从同一个文件中读取几个矩阵,以便可以在网络中绘制它们。当输入文件仅包含一个矩阵时,我设法做到了,但是当文件很多时,我不知道该怎么做。 输入文件看起来像这样,只是更大了:
x [*,*,0]
: 0 1 2 3 4 :=
0 . 0 0 1 1
1 1 . 0 0 0
2 1 0 . 0 0
3 0 0 0 . 0
4 0 0 0 0 .
我的代码是这样的:
infile = "testfile.sol"
edges = []
import pandas as pd
colNames = [i for i in range(11)]
df = pd.read_csv('testfile.sol', sep=' ', skipinitialspace=True, index_col=0,names=colNames, skiprows=[0, 1])
for i in range(len(df)):
for j in range(len(df)):
if df[i][j] == "1":
index_i = i
index_j = j
edge = (i,j)
edges.append(edge)
import networkx as nx
G = nx.Graph()
G.add_edges_from(edges)
这种工作方式,但是我的输入文件中有一些写在文件的后面:
x [*,*,0]
: 0 1 2 3 4 :=
0 . 0 0 1 1
1 1 . 0 0 0
2 1 0 . 0 0
3 0 0 0 . 0
4 0 0 0 0 .
x [*,*,1]
: 0 1 2 3 4 :=
0 . 0 0 1 0
1 1 . 0 0 0
2 1 0 . 0 1
3 0 0 0 . 0
4 0 0 0 0 .
我如何阅读所有这些内容,并使列表为edge0,edge1等?
答案 0 :(得分:0)
我没有尝试过,但是您可以将numpy.genfromtxt()与正确的定界符一起使用。您需要使用两次。首先获取矩阵,然后通过迭代矩阵数组使用第二次。