我使用网络构建图表如下:
>>> import networkx as nx
>>>
>>> G = nx.DiGraph()
>>> G.add_edge(1, 2, weight = 1.0)
>>> G.add_edge(1, 4, weight = 2.0)
>>> G.add_edge(2, 3, weight = 3.0)
>>> G.add_edge(2, 4, weight = 4.0)
>>> G.add_edge(3, 4, weight = 5.0)
>>> G.add_edge(3, 5, weight = 6.0)
>>> G.add_edge(4, 5, weight = 7.0)
然后我使用csr格式将矩阵压缩为scipy矩阵:
S = nx.to_scipy_sparse_matrix(G, format='csr')
我将矩阵恢复到密集状态:
>>> S.todense()
matrix([[ 0., 1., 0., 2., 0.],
[ 0., 0., 3., 4., 0.],
[ 0., 0., 0., 5., 6.],
[ 0., 0., 0., 0., 7.],
[ 0., 0., 0., 0., 0.]])
我如何访问此矩阵的每个元素?我试过S.todense()[0] [0]。但它不起作用?有人可以帮忙吗?
答案 0 :(得分:2)
这应该有效:
S.todense()[0, 0]
todense()
返回np.matrix
,您还可以使用.A
返回np.array
。在这种情况下:
S.A[0][0]
会工作,但
S.A[0,0]
仍然是首选。