使用networkx从图中删除边

2024-02-12

我正在尝试转换DiGraph成n叉树并按层序或BFS显示节点。我的树与此类似,但更大,为简单起见,使用以下示例:

G = networkx.DiGraph()
G.add_edges_from([('n', 'n1'), ('n', 'n2'), ('n', 'n3')])
G.add_edges_from([('n4', 'n41'), ('n1', 'n11'), ('n1', 'n12'), ('n1', 'n13')])
G.add_edges_from([('n2', 'n21'), ('n2', 'n22'), ('n', 'n22')])
G.add_edges_from([('n13', 'n131'), ('n22', 'n221'), ('n', 'n131'), ('n', 'n221')])

Tree:借用了this的数据question https://stackoverflow.com/questions/21866902/networkx-graph-searches-dfs-successors-vs-dfs-predecessors并进行适当修改:

n---->n1--->n11
 |     |--->n12
 |     |--->n13
 |-----------|--->n131 
 |--->n2              
 |     |---->n21     
 |     |---->n22     
 |------------|--->n221 
 |--->n3

现在我的真实数据集要复杂得多,有数百个节点,为了简单起见,我使用了上图。

我想从树中删除不必要的边,这样,如果父项对子项有一条边,子项对孙子有另一条边,并且父项对孙子也有一条边。我只是想删除孙子和父级(根)之间的边缘,因为这使我的图表变得复杂。 例如:我想删除('n', 'n131') and ('n', 'n221')从上图可以看出。实现这一目标的最佳方法是什么。


看起来你想找到图G的最小生成树,你可以使用Prims或Kruskal的算法实现:这是来自scipy的一个:http://docs.scipy.org/doc/scipy-0.15.1/reference/ generated/scipy.sparse.csgraph.minimum_spanning_tree.html http://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.sparse.csgraph.minimum_spanning_tree.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用networkx从图中删除边 的相关文章

  • Python中Decimal类型的澄清

    每个人都知道 或者至少 每个程序员都应该知道 http docs oracle com cd E19957 01 806 3568 ncg goldberg html 即使用float类型可能会导致精度错误 然而 在某些情况下 精确的解决方
  • 如何迭代按值排序的 Python 字典?

    我有一本字典 比如 a 6 b 1 c 2 我想迭代一下by value 不是通过键 换句话说 b 1 c 2 a 6 最直接的方法是什么 sorted dictionary items key lambda x x 1 对于那些讨厌 la
  • if 语句未命中中的 continue 断点

    在下面的代码中 两者a and b是生成器函数的输出 并且可以评估为None或者有一个值 def testBehaviour self a None b 5 while True if not a or not b continue pri
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • 切片 Dataframe 时出现 KeyError

    我的代码如下所示 d pd read csv Collector Output csv df pd DataFrame data d dfa df copy dfa dfa rename columns OBJECTID Object ID
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • 对图像块进行多重处理

    我有一个函数必须循环遍历图像的各个像素并计算一些几何形状 此函数需要很长时间才能运行 在 24 兆像素图像上大约需要 5 小时 但似乎应该很容易在多个内核上并行运行 然而 我一生都找不到一个有据可查 解释充分的例子来使用 Multiproc
  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • Numpy 过滤器平滑零区域

    我有一个 0 及更大整数的 2D numpy 数组 其中值代表区域标签 例如 array 9 9 9 0 0 0 0 1 1 1 9 9 9 9 0 7 1 1 1 1 9 9 9 9 0 2 2 1 1 1 9 9 9 8 0 2 2 1
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 无法在 osx-arm64 上安装 Python 3.7

    我正在尝试使用 Conda 创建一个带有 Python 3 7 的新环境 例如 conda create n qnn python 3 7 我收到以下错误 Collecting package metadata current repoda
  • python Soap zeep模块获取结果

    我从 SOAP API 得到如下结果 client zeep Client wsdl self wsdl transport transport auth header lb E authenticate self login res cl
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • 如何为每个屏幕添加自己的 .py 和 .kv 文件?

    我想为每个屏幕都有一个单独的 py 和 kv 文件 应通过 main py main kv 中的 ScreenManager 选择屏幕 设计应从文件 screen X kv 加载 类等应从文件 screen X py 加载 Screens
  • 迭代 my_dict.keys() 并修改字典中的值是否会使迭代器失效?

    我的例子是这样的 for my key in my dict keys my dict my key mutate 上述代码的行为是否已定义 假设my dict是一本字典并且mutate是一个改变其对象的方法 我担心的是 改变字典中的值可能
  • 当鼠标悬停在上面时,intellisense vscode 不显示参数或文档

    我正在尝试将整个工作流程从 Eclipse 和 Jupyter Notebook 迁移到 VS Code 我安装了 python 扩展 它应该带有 Intellisense 但它只是部分更糟糕 我在输入句点后收到建议 但当将鼠标悬停在其上方
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1

随机推荐

  • WCF ChannelFactory 和 OpenTimeout

    在客户端中 我正在尝试连接到正在更改的 WCFOpenTimeout属性设置为 5 秒 但它不起作用 这是我创建通道的方式 NetTcpBinding bind new NetTcpBinding SecurityMode None bin
  • 将字符串与枚举进行比较

    我正在使用名为 FindBugs 的静态分析工具分析以下代码 if str equals enum SOMEVALUE do something 其中 str 是字符串 enum 是枚举 该工具会为此代码生成以下警告 并指出 此方法对没有公
  • 需要布尔转换器 Struts2 来表示是、否、空白值

    我需要根据 UI 表单元素上选择的值保存数据
  • Django 管理:类媒体

    我有一个媒体类如下 class helloAdmin admin ModelAdmin class Media js choice js admin site register hello helloAdmin staticfiles 应用
  • 为什么 scanf("%d", [...]) 不消耗 '\n'?而 scanf("%c") 呢?

    Here https stackoverflow com questions 217074 parsing input with scanf in c 我在接受的答案中看到了这样的说法 大多数转换说明符会跳过前导空格 包括换行符 但是 c才
  • 使用 jQuery 切换类

    当用户单击链接时 我需要隐藏 div html 是这样的 div class item div class entry Lorem ipsum div a href class commentsToggle Show hide commen
  • Ionic - 如何设置 高度,以便它在所有分辨率设备中自动调整?

    我的代码如下
  • 如何在关闭时完全删除对话框

    当 ajax 操作失败时 我创建一个包含错误的新 div 然后将其显示为对话框 当对话框关闭时 我想完全销毁并再次删除 div 我怎样才能做到这一点 我的代码目前看起来像这样 div We failed div dialog title E
  • 在Java中查找数组中的元素

    Java 是否有内置函数允许我线性搜索数组中的元素 还是必须只使用 for 循环 有一个contains列表的方法 所以你应该能够这样做 Arrays asList yourArray contains yourObject 警告 这可能不
  • Flutter - 英雄动画不适用于选项卡导航器

    我是颤振新手 我正在使用英雄小部件为浮动按钮制作动画 我有底部导航 我必须使用选项卡导航器打开页面 但英雄动画不起作用 我使用了所有可能的解决方案 但英雄动画仍然不适用于页面路由 这是我的代码片段 FloatingActionButton
  • 无法删除全局包

    尝试删除全局包 但似乎没有删除它 eslint v v1 10 3 npm uninstall eslint g sudo npm uninstall eslint g eslint v v1 10 3 sudo eslint v v1 1
  • 如何使用之前输入的值填充自定义结帐字段,例如默认的 WooCommerce 结帐字段?

    我使用以下代码添加了一个自定义字段 add action woocommerce before order notes bbloomer add custom checkout field function bbloomer add cus
  • 在python中读取15M行csv文件的有效方法

    对于我的应用程序 我需要读取多个文件 每个文件有 15 M 行 将它们存储在 DataFrame 中 并将 DataFrame 保存为 HDFS5 格式 我已经尝试过不同的方法 特别是具有 chunksize 和 dtype 规范的 pan
  • 获取调用者类

    我正在编写 Logger 并在自动添加类名时遇到问题 我从中调用了 print log 方法 例如这样的事情 class Logger def self print log string puts Time now strftime T c
  • 美国电话号码验证

    我有一个网站表单 需要输入美国电话号码以供后续使用 在这种情况下这是非常有必要的 我想尝试消除用户输入垃圾数据330 000 0000 我已经看到了第三方为您验证电话号码的一些选项 但是我不知道这是否是这种情况的最佳选择 但是 如果您使用过
  • PyQt 项目视图自定义拖放

    我正在 QTableView 中进行自定义拖放实现 当我拖动一个单元格并将其放在另一个单元格上时 我想根据拖动的内容和放置的位置手动更改模型中的一些数据 我怎样才能做到这一点 我已经阅读了所有 Qt 文档 但我完全迷失了 特别是通过拖放 C
  • Couchbase 中的存储桶密码

    我正在创建一个使用 springboot 和 Couchbase 进行反应式编程的演示项目 我在 application properties 文件中设置了以下属性 spring couchbase bootstrap hosts loca
  • APK 0(零)设备兼容性

    我正在生成一个要在商店上发布的 APK 它是现有应用程序的更新 上传到 Google Play Console 后 支持的 Android 设备 0 台设备 这是我的清单
  • vue js如何使用方法将数据从父组件、v-for循环列表传递到子组件

    我试图实现在子组件 模态组件 中显示每个项目收据数组的项目列表 但一直无法这样做 方法display receipts 是将receipts modal的数据值改为true 我可以在哪里放置 v bind 来传递数组 任何帮助深表感谢 Pa
  • 使用networkx从图中删除边

    我正在尝试转换DiGraph成n叉树并按层序或BFS显示节点 我的树与此类似 但更大 为简单起见 使用以下示例 G networkx DiGraph G add edges from n n1 n n2 n n3 G add edges f