首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nx.bipartite.biadjacency_matrix() -跟踪节点

nx.bipartite.biadjacency_matrix() -跟踪节点
EN

Stack Overflow用户
提问于 2018-01-24 10:30:18
回答 1查看 1.4K关注 0票数 0

我使用python3.6和networkx2.1。我从加权编辑师导入二分图,然后调用双邻接矩阵函数并将结果转换为熊猫数据,对其执行一些操作,例如计算一些相关系数(执行这些计算的函数以邻接矩阵为输入,因此我需要转换编辑列表)。

代码语言:javascript
复制
import pandas as pd
from networkx import bipartite
A=bipartite.biadjacency_matrix(G, nodes1, nodes2).todense()
A=pd.DataFrame(A)

事实上,当我调用bipartite.biadjacency_matrix()时,我丢失了节点的名称,由此产生的数据格式如下所示:

代码语言:javascript
复制
    0   1   2   3   4   5   6   7   8   9  ...  13  14  15  16  17  18  19  \
0    0   0   0   1   0   0   0   0   0   0 ...   0  11   0   2   0   2   1   
1    0   0   0   0   0   0   0   0   0   0 ...   1  23   2   0   0   3   5   
2    0   0   0   0   0   0   0   0   1   0 ...   3  24   3   5   0   3   5   
3    0   0   0   0   0   0   0   0   0   0 ...   0  18   0   2   0   0   1   
4    0   0   0   0   0   0   0   0   1   0 ...   1  17   4   8   0   4   2 
.
.
.

因此,在计算相关系数之后,我可以根据得到的相似矩阵构建一个网络,但我不知道哪一个是谁,谁是谁。关于如何恢复名字有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-01-24 15:02:29

来自bipartite.biadjacency_matrix的文档

row_order :节点列表矩阵的行是根据节点列表排序的。 column_order : list,可选矩阵的列是根据节点列表排序的。如果column_order为None,那么列的排序是任意的。

来自pd.DataFrame

索引:用于生成帧的索引或类似数组的索引.如果输入数据中没有索引信息部分且没有提供索引,则默认为np.arange(n) 列:用于生成帧的索引或类似数组的列标签.如果没有提供列标签,则默认为np.arange(n)

您可以推断矩阵A行使用nodes1排序,列使用nodes2排序。要在dataframe中获得相同的顺序,只需:

代码语言:javascript
复制
A = pd.DataFrame(A, index=nodes1, columns=nodes2)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48420223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档