我想在一个给定的biadjacency矩阵B中建立一个邻接矩阵。在python中类型是adjacency matrix。
设矩阵B = np.array([[1,2,3],[10,20,30],[3,4,5],[50,12,36],[5,6,7],[3,4,5]])
及其转置Bt = np.transpose(B)
。
还有两个零矩阵Z,Zt分别具有尺寸(6,6)和(3,3)。
所以A = [[Z,B],[Bt,Zt]]
。但这是一个列表及其元素:
[[array([[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0., 0.]]), array([[ 1, 2, 3],
[10, 20, 30],
[ 3, 4, 5],
[50, 12, 36],
[ 5, 6, 7],
[ 3, 4, 5]])], [array([[ 1, 10, 3, 50, 5, 3],
[ 2, 20, 4, 12, 6, 4],
[ 3, 30, 5, 36, 7, 5]]), array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])]].
但是我想要这样的东西:
[0., 0., 0., 0., 0., 0., 1, 2, 3
0., 0., 0., 0., 0., 0., 10, 20, 30
0., 0., 0., 0., 0., 0., 3, 4, 5
0., 0., 0., 0., 0., 0., 50, 12, 36
0., 0., 0., 0., 0., 0., 5, 6, 7
0., 0., 0., 0., 0., 0., 3, 4, 5
1, 10, 3, 50, 5, 3, 0., 0., 0.
2, 20, 4, 12, 6, 4, 0., 0., 0.
3, 30, 5, 36, 7, 5, 0., 0., 0.]
我尝试使用列表推导但结果不正确。 如果我有原始图表我可以使用NetworX包但我现在不能。 你知道构建A的方法吗?
答案 0 :(得分:1)
您尝试实现的是 concatenation ,而您的代码(以及问题开头的符号)都是关于创建多维对象的:
nmap -sn 192.168.2.2
答案 1 :(得分:0)
bmat
函数使得从其他矩阵中构造矩阵非常容易,所以
A = np.bmat([[Z, B], [Bt, Zt]]).A
制作一个与你指定的一样的A.