3

我有一个包含 mxn 邻接矩阵的 csv 文件。像这样导出的:

numpy.savetxt("file.csv", biadjacency_matrix, ...)

现在我必须导入矩阵,但很难找到正确的函数/方法。

我尝试了以下方法:

numpy_data = numpy.loadtxt(...)
nx.from_numpy_matrix(numpy_data)

但得到:

Input is not a correct numpy matrix or array.

这是有道理的,因为矩阵不是 nx n。

有没有一种简单的方法来导入 biadjacency_matrix?

谢谢你的帮助。

4

1 回答 1

4

没有内置函数可以导入双邻接矩阵。您可以从邻接矩阵 B 创建邻接矩阵 A

0  B
BT 0

其中BT是B的转置。

然后就可以直接加载了,

In [1]: import numpy as np

In [2]: import networkx as nx

In [3]: b = np.matrix([[1,0,1],[0,1,1]]) 

In [4]: r,s = b.shape

In [5]: a = np.vstack( (np.hstack((np.zeros((r,r)),b)), np.hstack((b.T,np.zeros((s,s)) ))) )

In [6]: G = nx.Graph(a)

In [7]: G.edges()
Out[7]: [(0, 2), (0, 4), (1, 3), (1, 4)]

节点标记为 0,1(第 1 部分)和 2,3,4(第 2 部分)。

于 2013-04-10T12:44:37.677 回答