2013-04-09 79 views
3

我有含有m×n个biadjacency矩阵csv文件。这是出口像:加载biadjacency矩阵中networkx

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. 

这是有道理的矩阵不是n×n个。

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

感谢您的帮助。

回答

4

没有内置的功能导入biadjacency矩阵。您可以创建从biadjacency矩阵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部分)。

+0

就像一个魅力工作,等待这么久。感谢吨@Aric! – wpp 2013-04-14 19:55:33