Networkx:获取节点之间的距离

2024-03-01

我是使用 NetworkX 的初学者,我正在尝试找到一种方法来检测哪些节点彼此之间的距离为 x。 我开始使用这个算法来获取所有对

path=nx.all_pairs_dijkstra_path(G)

但我仍然不确定如何使用 for 循环检测节点之间的距离。

我将不胜感激任何帮助。谢谢


NetworkX 具有自动计算加权和未加权图的最短路径(或仅路径长度)的方法。确保针对您的用例使用正确的方法。

networkx.all_pairs_shortest_path https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.shortest_paths.unweighted.all_pairs_shortest_path.html#networkx.algorithms.shortest_paths.unweighted.all_pairs_shortest_path- 计算一个网络中所有节点之间的最短路径未加权的 graph

networkx.all_pairs_shortest_path_length https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.shortest_paths.unweighted.all_pairs_shortest_path_length.html#networkx.algorithms.shortest_paths.unweighted.all_pairs_shortest_path_length- 计算一个网络中所有节点之间的最短路径的长度未加权的 graph

networkx.all_pairs_dijkstra_path https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.shortest_paths.weighted.all_pairs_dijkstra_path.html#networkx.algorithms.shortest_paths.weighted.all_pairs_dijkstra_path- 计算a中所有节点之间的最短路径weighted graph

networkx.all_pairs_dijkstra_path_length https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.shortest_paths.weighted.all_pairs_dijkstra_path_length.html#networkx.algorithms.shortest_paths.weighted.all_pairs_dijkstra_path_length- 计算a中所有节点之间的最短路径的长度weighted graph

这些方法中的每一种,当在图上执行时,都会计算节点的字典矩阵(“字典的字典”),以相应的最短路径或最短路径的长度作为值。我将用一个例子来证明这一点:

>>> import networkx as nx
>>> G = nx.Graph()
>>> G.add_nodes_from(["A", "B", "C", "D", "E"])
>>> G.add_edges_from([("A", "B"), ("B", "C"), ("C", "D"), ("D", "E")])
>>> sp = dict(nx.all_pairs_shortest_path(G))
>>> sp["A"]["E"]
['A', 'B', 'C', 'D', 'E']
>>> spl = dict(nx.all_pairs_shortest_path_length(G))
>>> spl["A"]["E"]
4

正如您所看到的,我生成了一个包含五个节点的图,并用一条边将每个节点链接到下一个节点。我将最短路径的矩阵存储在sp以及最短路径长度的矩阵spl。当我需要知道两个节点之间的最短路径时,例如节点"A"和节点"E",我刚刚访问sp就像一个矩阵,或者一个字典的字典:sp["A"]["E"]。然后它将返回两个节点之间的整个最短路径。最短路径长度的方法以类似的方式工作,但它只会返回任意两个给定节点之间的边数。

下一个代码片段可能会让我对字典矩阵的意思更加清楚。如果我请求所有条目sp对于节点"A",它返回另一个字典,其中包含每个其他节点的条目:

>>> sp["A"]
{'B': ['A', 'B'], 'A': ['A'], 'E': ['A', 'B', 'C', 'D', 'E'], 'C': ['A', 'B', 'C
'], 'D': ['A', 'B', 'C', 'D']}

如果您想使用以下命令检查所有节点之间的距离for循环,您可以迭代矩阵的第一个字典的键,然后迭代该字典内的字典。这比听起来容易:

>>> for node1 in spl:
...   for node2 in spl[node1]:
...     print("Length between", node1, "and", node2, "is", spl[node1][node2])
...
Length between B and B is 0
Length between B and A is 1
Length between B and E is 3
Length between B and C is 1
Length between B and D is 2
Length between A and B is 1
... (and so on!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Networkx:获取节点之间的距离 的相关文章

  • 如何更改默认的Python版本?

    我已经在我的 Mac 上安装了 Python 3 2 我跑完之后 Applications Python 3 2 Update Shell Profile command 当我输入时 这很令人困惑Python V在终端它说Python 2
  • 分配列表的多个值

    我很想知道是否有一种 Pythonic 方式将列表中的值分配给元素 为了更清楚 我要求这样的事情 myList 3 5 7 2 a b c d something myList So that a 3 b 5 c 7 d 2 我正在寻找比手
  • 区分大小写的实体识别

    我的关键字全部以小写形式存储 例如 折扣耐克鞋 我正在尝试对其执行实体提取 我遇到的问题是 spaCy 在 NER 方面似乎区分大小写 请注意 我不认为这是 spaCy 特有的 当我跑步时 doc nlp u i love nike sho
  • Python Numpy Reshape错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试重塑 3D numpy 数组时遇到一个奇怪的错误 数组 x 的形状为 6 10 300 我想将其重塑为 6 3000 我正
  • 如何在 numpy 数组中查找并保存重复的行?

    我有一个数组 例如 Array 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 1 1 1 2 2 2 我想要输出以下内容的东西 Repeated 1 1 1 2 2 2 保留重复行的数量也可以 例如 Repeated 1 1
  • 烧瓶 - 404 未找到

    我是烧瓶开发的新手 这是我在烧瓶中的第一个程序 但它向我显示了这个错误 在服务器上找不到请求的 URL 如果您输入了网址 请手动检查拼写并重试 这是我的代码 from flask import Flask app Flask name ap
  • 从字典中绘制直方图

    我创建了一个dictionary计算 a 中出现的次数list每个键的内容 我现在想绘制其内容的直方图 这是我想要绘制的字典的内容 1 27 34 1 3 72 4 62 5 33 6 36 7 20 8 12 9 9 10 6 11 5
  • Python sys.modules 包含尚未导入的模块

    我试图了解加载的模块与导入的模块之间的区别 如果有的话 我正在使用 Python 2 7 3 并且只是从命令行运行 Python 如果我执行 import sys sys modules 我得到一个列表 其中包括os 例如 文档说sys m
  • 无法在我的程序中使用 matplotlib 函数

    我正在 Windows 10 中运行 Anaconda 安装 conda 版本 4 3 8 这是我尝试在 python 命令行中运行的代码 import matplotlib pyplot as plt x 1 2 3 4 y 5 6 7
  • 打印一份拥有多个家庭的人员名单,每个家庭都有多个电话号码

    我有一类 Person 它可以有多个 Home 每个 Home 都有一个或多个电话号码 我已经定义了类 但现在我正在尝试创建一个视图 其中列出每个人的所有家庭以及每个家庭地址的所有电话号码 类似于 john smith 123 fake s
  • Bokeh 中单独的节点和边缘悬停工具?

    我正在尝试为 Bokeh 中的节点和边缘获取单独的悬停工具提示 但未能使其正常工作 有人可以指出我做错了什么吗 我相信代码应该如下所示 from bokeh io import show output notebook from bokeh
  • 如何让 Streamlit 每 5 秒重新加载一次?

    我必须每 5 秒重新加载 Streamlit 图表 以便在 XLSX 报告中可视化新数据 如何实现这一目标 import streamlit as st import pandas as pd import os mainDir os pa
  • 如何全局安装 Python(开发)依赖项,以便我不必在每个 venv 中重新安装它们?

    我希望在为每个项目创建的每个 venv 虚拟环境 中都可以使用一些 Python 依赖项 例如 black flake8 和 pytest 这可能吗 如果可以 如何实现 我想安装这三个once在我的主要 Python 安装下 我必须在启动新
  • 如何在 Python 中跟踪日志文件?

    我想在 Python 中提供 tail F 或类似内容的输出 而无需阻塞或锁定 我找到了一些非常旧的代码来做到这一点here http code activestate com recipes 436477 filetailpy 但我认为现
  • 如何使用logging.conf文件使用RotatingFileHandler将所有内容记录到文件中?

    我正在尝试使用RotatingHandler用于 Python 中的日志记录目的 我将备份文件保留为 500 个 这意味着我猜它将创建最多 500 个文件 并且我设置的大小是 2000 字节 不确定建议的大小限制是多少 如果我运行下面的代码
  • 在不同的 GPU 上同时训练多个 keras/tensorflow 模型

    我想在 Jupyter Notebook 中同时在多个 GPU 上训练多个模型 我正在使用 4GPU 的节点上工作 我想将一个 GPU 分配给一个模型并同时训练 4 个不同的模型 现在 我通过 例如 为一台笔记本选择 GPU import
  • 使用 Numpy 进行多维批量图像卷积

    在图像处理和分类网络中 一个常见的任务是输入图像与一些固定滤波器的卷积或互相关 例如 在卷积神经网络 CNN 中 这是一种极其常见的操作 我已将通用版本任务减少为 Given 一批 N 个图像 N H W D 和一组 K 个滤镜 K H W
  • 如何在 Qt 中以编程方式制作一条水平线

    我想弄清楚如何在 Qt 中制作一条水平线 这很容易在设计器中创建 但我想以编程方式创建一个 我已经做了一些谷歌搜索并查看了 ui 文件中的 xml 但无法弄清楚任何内容 ui 文件中的 xml 如下所示
  • 当训练和测试的特征数量不同时,如何处理生产环境中的One-Hot Encoding?

    在做某些实验时 我们通常在 70 上进行训练 在 33 上进行测试 但是 当您的模型投入生产时会发生什么 可能会发生以下情况 训练集 Ser Type Of Car 1 Hatchback 2 Sedan 3 Coupe 4 SUV 经过
  • 防止 Ada DLL 中的名称损坏

    有没有一种简单的方法可以防止在创建 Ada DLL 时 Ada 名称被破坏 这是我的 adb 代码 with Ada Text IO package body testDLL is procedure Print Call is begin

随机推荐

  • 阻止应用程序[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要制作一个应用程序来阻止手机上的
  • 我可以用 Python 编写屏幕截图吗

    是否有任何库可用于在 Python 中编写屏幕截图 可以做成跨平台的吗 可以捕捉到视频吗 如果可以实时进行吗 或者说可以直接 生成Flash电影 屏幕捕获可以通过以下方式完成PIL 得益于 ImageGrab 模块 http www pyt
  • Firebase 函数 - https onRequest“HTTP 错误:400,请求有错误”

    我的 firebase 功能遇到一些重大问题 我正在尝试创建一个https请求以便我可以将数据发送到 Firebase 我有一个超级简单的代码只是为了测试 它会导致错误 这是我的代码 这段代码应该没有问题 exports fetchPost
  • Symfony 表单,错误冒泡

    我遇到了表单错误冒泡的问题 我的表单中的一个字段定义如下 formBuilder gt add title text required gt true error bubbling gt false 我想向该字段添加一个这样的验证器 Ass
  • 如何在 Windows 10 预览版中安装应用程序请求路由 ARR 3.0?

    当我尝试安装应用程序请求路由时 出现错误 安装 Microsoft 应用程序请求路由 3 0 需要 IIS 版本 7 0 或更高版本 Windows 10有IIS 10 0 所以应该是可以的 但我猜微软还没有修复版本检查 有没有可用的解决方
  • 使用 Python BeautifulSoup 单击链接

    所以我是 Python 新手 我来自 PHP JavaScript 背景 但我只是想编写一个快速脚本来抓取网站和所有子页面以查找所有内容a标签有href属性 数一下有多少个 然后单击链接 我可以计算所有链接 但我不知道如何 单击 链接然后返
  • 识别python中的日期格式

    如何获取 python 中给定日期输入的日期格式 笔记 输入是由用户给出的 不是预定义的格式 他们可能会 给出任何类型的输入格式 下面的示例适用于 dd mm yyyy 格式 但这不在 我的情况 日期格式未预定义 datetime date
  • EditText 提示文本和图标

    我正在尝试创建一个带有提示的 EditText 作为图标和文本 但是提示文本位于中心 但我希望提示文本左对齐 以便提示图标和提示文本之间应该只有制表符空格 间隙 这是我尝试过的
  • Android:弃用 startManagingCursor 的原因是什么?

    弃用 startManagingCursor 的原因是什么 我的简单应用程序有一个表视图 其中包含数据库中的数据列表 所以 我现在在 onCreate 中拥有的内容 final Cursor cursor getDataFromDB sta
  • 使用密钥来同步对代码块的访问

    通常我会锁定如下所示的关键部分 public class Cache private Object lockObject new Object public Object getFromCache String key synchroniz
  • 发布后到看到我的第一个 Android 应用程序上市需要多长时间

    我已经在市场上发布了一个应用程序 检查了设备列表 国家 地区列出了一切正常 但仍然无法通过在市场中搜索看到我的应用程序 想知道在市场上被搜索到需要时间吗 比如 3 或 7 天 小时 Thanks 这将需要几个小时 具体多长时间取决于服务器负
  • 使用 GSON 创建 JSON 字符串

    我正在上一堂像下面这样的课 public class Student public int id public String name public int age 现在我想创建新的学生 while create new student S
  • Kotlin 协程 GlobalScope.launch 与 runBlocking

    这两种方法有什么区别吗 runBlocking launch coroutineDispatcher job GlobalScope launch coroutineDispatcher job runBlocking运行新的协程并中断地阻
  • pyenv: pip: 未找到命令

    我正在尝试让 Python 2 7 在 OSX El Capitan 上与 pyenv 和 virtualenv 很好地配合 我已经安装了pyenv使用 Homebrew 然后使用 Python 2 7 11pyenv install 2
  • Textblock 中的标签自动换行不起作用

    我有一个包含相当多对象的 WPF 页面 在所有这些项目的底部 我有一个标签 需要在内容中进行文字环绕 答案很简单 通过使用 Textblock 这应该是小菜一碟 然而 即使我使用了这些项目 我仍然无法让文本换行 所以我假设其他对象中必须有其
  • 使用集合对值进行排序

    使用集合进行排序很漂亮 对我来说比使用比较器要好得多 因为我有多个相同的值 并且我希望它们不要被扔进垃圾桶 但 Collections 有它自己的问题 它似乎认为 2 组的重复数量小于其实际较小的对应部分 示例有这些键和值 katy 1 m
  • 一组图像中颜色(色调)值 (0-359) 出现次数的总和

    我有一个装满图像的文件夹 我想找到出现次数最少的色相值 为此 我为所有色调值创建一个长度为 360 的数组 获取文件夹中的所有图像 遍历它 对于每个像素 我在数组中代表色调值的索引处添加 1 例如 如果我的像素中的色调值为 0 我会在数组中
  • [Hive]查询 hive 数据库时出现“ArrayIndexOutOfBoundsException”

    当我查询配置单元基础 hive 0 11 0 和 hive 0 12 0 时 我总是得到 ArrayIndexOutOfBoundsException 但有时不会 这是错误 java lang RuntimeException Hive R
  • Python Dataframe 在微秒内重新采样

    我正在处理重新采样数据帧 它可以在几小时 几天 几分钟内工作 但重新采样的时间不会少于秒 即使时间跨度很短 程序也会挂起 那么我错过了什么吗 我尝试了 0 000001S U 等 到目前为止没有任何效果 我的时间格式 2015 08 29
  • Networkx:获取节点之间的距离

    我是使用 NetworkX 的初学者 我正在尝试找到一种方法来检测哪些节点彼此之间的距离为 x 我开始使用这个算法来获取所有对 path nx all pairs dijkstra path G 但我仍然不确定如何使用 for 循环检测节点