Python networkx tutorial教程

简介: Python networkx tutorial教程

Python networkx tutorial教程


官网地址:

https://networkx.org/documentation/stable/tutorial.html

本文主要对官网进行翻译理解。

一、建图

1、建立一个没有边没有节点的空图

import networkx as nx
G = nx.Graph()

根据定义,图是节点(顶点)和确定的节点对(称为边、链接等)的集合。在NetworkX中,节点可以是任何可哈希对象,例如,一个文本字符串、一张图像、一个XML对象、另一个图形、一个定制的节点对象等。

二、节点(Nodes)

图G可以通过几种方式增长。NetworkX 包含许多图形生成器函数和工具,可以以多种格式读取和写入图形。首先,可以一次添加一个节点:

G.add_node(1)

或者从任何可迭代容器(如列表)中添加节点:

G.add_nodes_from([2, 3])

如果容器产生如下形式的二元组 (node, node_attribute_dict),也可以在添加节点属性的同时添加节点:

G.add_nodes_from([
    (4, {"color": "red"}),
    (5, {"color": "green"}),
])

一个图中的节点可以合并到另一个图中:

H = nx.path_graph(10)
G.add_nodes_from(H)

G现在包含了H的节点作为G的节点,相反,你可以使用图形H作为G的节点:

G.add_node(H)

三、边(Edges)

G也可以通过每次增加一条边来增加:

G.add_edge(1, 2)
e = (2, 3)
G.add_edge(*e)  # unpack edge tuple*

通过添加一系列边:

G.add_edges_from([(1, 2), (1, 3)])

或者通过添加任意一条边。ebunch是边元组的任何可迭代容器。一个边元组可以是一个包含节点的二元元组,也可以是一个包含两个节点的三元元组,后跟一个边属性字典,例如(2,3,{'weight': 3.1415})。

G.add_edges_from(H.edges)

在添加现有节点或边时没有问题。例如,在删除所有节点和边后:

G.clear()

我们添加了新的节点/边,NetworkX悄悄地忽略了所有已经存在的节点/边。

G.add_edges_from([(1, 2), (1, 3)])
G.add_node(1)
G.add_edge(1, 2)
G.add_node("spam")        # adds node "spam"
G.add_nodes_from("spam")  # adds 4 nodes: 's', 'p', 'a', 'm'
G.add_edge(3, 'm')

此时图G由8个节点和3条边组成,用下边的代码可以得出:

G.number_of_nodes()
G.number_of_edges()
相关文章
|
24天前
|
数据采集 存储 JSON
Python网络爬虫教程概览
【6月更文挑战第21天】Python网络爬虫教程概览:安装requests和BeautifulSoup库抓取网页;使用HTTP GET请求获取HTML,解析标题;利用CSS选择器提取数据;处理异步内容可选Selenium;遵循爬虫策略,处理异常,尊重法律与网站规定。
29 1
|
9天前
|
数据采集 存储 JSON
Python 数据抓取教程:完结篇
Python 数据抓取教程:完结篇
21 1
|
11天前
|
达摩院 语音技术 异构计算
语音识别-免费开源的语音转文本软件Whisper的本地搭建详细教程,python版本是3.805,ffmpeg是专门处理音视频的,ffmpeg的下载链接,现在要求安装python和ffmpeg
语音识别-免费开源的语音转文本软件Whisper的本地搭建详细教程,python版本是3.805,ffmpeg是专门处理音视频的,ffmpeg的下载链接,现在要求安装python和ffmpeg
|
13天前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:序列建模与生成模型的博客教程
【7月更文挑战第2天】 使用Python实现深度学习模型:序列建模与生成模型的博客教程
18 1
|
14天前
|
机器学习/深度学习 数据采集 算法
Scikit-Learn基础教程
Scikit-Learn基础教程
17 2
|
18天前
|
Shell Python
Python教程:return和yield的区别
Python教程:return和yield的区别
12 0
Python教程:return和yield的区别
|
20天前
|
数据采集 存储 数据处理
使用Python获取1688商品详情的教程
使用Python爬取1688商品详情,涉及requests库抓取页面、BeautifulSoup解析HTML,安装必要库如requests、beautifulsoup4、pandas和lxml。通过get_page发送请求,BeautifulSoup解析提取如标题、价格等信息。数据处理后可使用pandas保存至CSV。注意遵守法律法规和网站政策,避免频繁请求。[代码片段及更多详情见链接
|
26天前
|
存储 数据安全/隐私保护 计算机视觉
Python教程:一文了解从Bytes到Bits的数据转换
在Python编程中,处理数据时经常需要在字节(bytes)和位(bits)之间进行转换。这种转换在网络通信、数据加密、图像处理等领域尤为常见。本文将详细介绍如何在Python中进行字节与位之间的转换,并提供一个实用的功能:如何在指定的位位置替换位数据。
30 4
|
24天前
|
存储 JSON 数据格式
Python基础语法汇总【保姆级小白教程】
我将 Python语法分为14个章节,从第一章Python基础概念到第14章模块&异常处理,本篇文章将逐一为大家讲述.
83 0
Python基础语法汇总【保姆级小白教程】
|
26天前
|
设计模式 Python
Python教程:一文了解Python工厂模式
工厂模式是一种创建型设计模式,它用于创建对象的实例,而无需在客户端代码中指定具体的类。通过引入工厂类,客户端代码只需要与工厂接口进行交互,而不需要了解实际创建的对象的细节。这样可以将对象的创建和使用分离开来,提高了代码的灵活性和可维护性。
19 2