Python竞技比赛流体动力学艺术品和药物质量图学习

37 篇文章 0 订阅
32 篇文章 0 订阅

🎯要点

  1. 🎯邻接图表征类:🖊边生成图算法 | 🖊生成顶点标记图算法 | 🖊图深度优先遍历算法 | 🖊图深度优先生成树的算法 | 🖊双向图最左边深度优先遍历的算法 | 🖊图广度优先遍历算法 | 🖊图广度优先生成树的算法 | 🖊图广度优先生成树最短路径算法 | 🖊二分图最大基数匹配算法 | 🖊二分图匹配增广路径算法 | 🖊二分图最大权重匹配算法 | 🖊二分图两个顶点匹配增广路径算法 | 🖊有序图同构算法 | 🖊枚举图团回溯算法 | 🖊枚举图最大团回溯算法 | 🖊图的最大团分支定界算法。
  2. 🎯树结构表征类:🖊边生成树算法 | 🖊生成节点标记完全二叉树算法 | 🖊有序树距离简单算法 | 🖊有序树距离回溯算法 | 🖊有序树距离分支定界算法 | 🖊有序树距离分而治之算法 | 🖊有序树距离自顶向下、自底向上动态规划算法 | 🖊树前序遍历递归和迭代算法 | 🖊节点树前序、后序遍历迭代算法 | 🖊节点树后序遍历递归算法 | 🖊自上而下遍历树迭代算法 | 🖊自上而下遍历节点树迭代算 | 🖊自下而上遍历树迭代算法 | 🖊自下而上遍历节点树迭代算法 | 🖊计算树节点深度、高度和分层布局算法 | 🖊测试有序、无序树同构算法 | 🖊有序树、无序树自顶向下子树同构算法 | 🖊枚举有序树、无序树自下而上子树同构算法 | 🖊有序树、无序树自顶向下最大公共子树同构算法 | 🖊有序树、无序树自底向上最大公共子树同构算法。
  3. 🎯代数计算图算法 | 🎯图学习博物馆艺术品 | 🎯竞技比赛流体动力学策略图学习 | 🎯图学习药物精度控制

🍇Python图分析

在图论中,图具有连接到两个元素 (E) 的有限顶点集 (V)。 连接两个目的地或节点的每个顶点 (v) 称为链接或边。 考虑下面的自行车道图:集合 {K,L}、{F,G}、{J,H}、{H,L}、{A,B} 和 {C,E} 是边的示例。

flowchart TB
A((A))---B((B))
C((C)) & D((D))---E((E))
F((F))---G((G)) & H((H))
G---I((I)) & J((J))
J---H & K((K))
I---K
H---L((L)) & M((M))
K---L---M

每个节点的边总数就是该节点的度。在上图中,M 的阶数为 2({M,H} 和 {M,L}),而 B 的阶数为 1({B,A})。度正式描述为:
d i ( g ) = ∑ j = 1 n g i j \begin{aligned} d_i(g) & =\sum_{j=1}^n g_{i j} \end{aligned} di(g)=j=1ngij
通过使用多个边的连接称为路径。 {F, H, M, L, H, J, G, I} 是路径的示例。 简单路径是指不重复节点的路径——正式称为欧拉路径。 {I, G, J, H, F} 是简单路径的示例。 最短的简单路径称为测地线。 I 和 J 之间的测地线是 {I, G, J} 或 {I, K, J}。 最后,循环是指路径的起点和终点相同(例如{H,M,L,H})。 在一些笔记本中,循环被正式称为欧拉循环。

并非图系统中的所有网络都是互连的。断开是在分量形成时发生的。如下图所示,只有当每个节点都有到其他节点的路径时,分量才会形成。

分量3
G
F
H
I
J
K
L
M
分量2
E
C
D
分量1
B
A

在 Python 中,networkx 通常用于应用图论,也称为网络分析。 该包具有快速总结图形特征的有用功能。

首先,下面的代码创建一个图空对象 P。接下来的步骤添加节点并描述边。

P = nx.Graph() 

P.add_nodes_from(['A','B','C','D', 'E'])
P.add_edges_from ([('B','C'), ('A','C'), ('B','D'), ('D','A'), ('D','E'), ('B','E')])
print(P.nodes())
print(P.edges())

最后,nx.draw 用于可视化网络。

%matplotlib inline
import matplotlib.pyplot as plt
nx.draw(P, with_labels = True)
A
D
E
B
C

下面的练习一将使用航班的数据。数据集包括出发地和目的地机场以及描述航班的属性,包括飞行时间和延误(天气、安全或航空公司相关)。

import pandas as pd
import numpy as np

path = "INSERT YOUR PATH"
file = pd.read_csv(path + "flights.csv", low_memory = False)
file.shape
#review data
file.head()

由于我们已经有了出发地和目的地数据,****字段 ORIGIN_AIRPORT 和 DESTINATION_AIRPORT 将用作节点和边的源字段 - 无需像我们在第一个练习中那样创建节点或边。 一旦定义了节点,<object>.edges() 将提供它们之间的所有成对关系。 最后,nx.draw 将帮助生成一个到边缘的图形。

import networkx as nx
FG = nx.from_pandas_edgelist(file2, source='ORIGIN_AIRPORT', target='DESTINATION_AIRPORT', edge_attr=True)
FG.nodes()
nx.draw(FG, with_labels = True)

示例2:

NG.add_nodes_from(['A','B','C','D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']) # Add a list of nodes by passing a  
NG.add_edges_from([('A', 'B'),('C','E'),('D','E'), ('F','G'), ('F','H'), ('G', 'J'), ('H', 'J'), ('H', 'M'), ('H','L'), ('M', 'L'), ('J', 'K'), ('J', 'G'), ('K', 'I'), ('I', 'G'), ('L', 'K')])
s
NG = nx.from_pandas_edgelist(ntwrk, source='source', target='target', edge_attr=True)
NG.nodes()

NG.edges()

nx.draw(NG, with_labels = True)

djk_path = nx.dijkstra_path(NG, source='L', target='F')
djk_path
A
B
C
D
E
F
G
H
I
J
K
L
M

🔗参阅一:计算思维

🔗参阅二:亚图跨际

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值