python - 将networkx图转换为igraph图时出现问题
问题描述
我希望获取在 networkx 中创建的图形 G 并将其转换为 igraph g,以便与 leidenalg 社区检测包一起使用。这曾经对我有用,但现在我遇到了问题。
在运行 Catalina OSX 的 Mac 上的 Jupyter 笔记本中使用 Python 3。Python-igraph 是 0.7.1.post7 版本。
import numpy as np
import networkx as nx
import igraph as ig
A=np.matrix([[0,7,7,0,0],[7,0,6,0,0],[7,6,0,2,1],[0,0,2,0,4],[0,0,1,4,0]])
G=nx.from_numpy_matrix(A)
nx.write_graphml(G,'graph.graphml')
g = ig.read('graph.graphml',format="graphml")
错误消息说“模块'igraph'没有属性'read'”将最后一行替换为
g=ig.Read_GraphML('graph.graphml')
不会消除错误消息。
出于某种原因,这确实适用于带有 Python 3.7 的 Spyder
解决方案
我的猜测是您在 virtualenv 中安装了错误的软件包。
有2个图书馆:
- igraph(安装
pip install igraph
) - python-igraph(安装
brew install igraph && pip install python-igraph
)。这是包含read
方法的那个。
两者都可以称为import igraph
。
尝试运行pip freeze
以检查您的环境中是否安装了正确的软件包。
推荐阅读
- javascript - 编辑列表中的项目
- c# - 对 UseHttps 扩展方法的模糊调用
- sql - 在sql中的情况下如何执行多个操作?
- sql - 如何合并和显示 2 个表格的列?
- powerbi - 计算表累计
- php - 为什么我的 HTML 代码在用户名输入字段中打印根?
- git - 将 Spring Cloud Config Server 与我的 git 本地存储库连接
- java - 用 JLabel 的 setIcon 方法替换后 Gif 不再动画
- python - 为什么 Multiprocessing 会产生多个 PyGame 实例?
- r - 在 Shiny mainPanel 中看不到条件选择?