最近开始认真的学习发现一个 python 好玩的模块

以下内容为网上的文章整合

networkx在02年5月产生,是用python语言编写的软件包,便于用户对复杂网络进行创建、操作和学习。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。

NetworkX提供了4种常见网络的建模方法,分别是:规则图,ER随机图,WS小世界网络和BA无标度网络。

一. 规则图

规则图差不多是最没有复杂性的一类图,random_graphs.random_regular_graph(d, n)方法可以生成一个含有n个节点,每个节点有d个邻居节点的规则图。

下面一段示例代码,生成了包含20个节点、每个节点有3个邻居的规则图:

import networkx as nx

import matplotlib.pyplot as plt

# regular graphy

# generate a regular graph which has 20 nodes & each node has 3 neghbour nodes.

RG = nx.random_graphs.random_regular_graph(3, 20)

# the spectral layout

pos = nx.spectral_layout(RG)

# draw the regular graphy

nx.draw(RG, pos, with_labels = False, node_size = 30)

plt.show()

二、ER随机图

ER随机图是早期研究得比较多的一类“复杂”网络,模型的基本思想是以概率p连接N个节点中的每一对节点。用random_graphs.erdos_renyi_graph(n,p)方法生成一个含有n个节点、以概率p连接的ER随机图:

import networkx as nx

import matplotlib.pyplot as plt

# erdos renyi graph

# generate a graph which has n=20 nodes, probablity p = 0.2.

ER = nx.random_graphs.erdos_renyi_graph(20, 0.2)

# the shell layout

pos = nx.shell_layout(ER)

nx.draw(ER, pos, with_labels = False, node_size = 30)

plt.show()

三、WS小世界网络

用random_graphs.watts_strogatz_graph(n, k, p)方法生成一个含有n个节点、每个节点有k个邻居、以概率p随机化重连边的WS小世界网络。

下面是一个例子:

import networkx as nx

import matplotlib.pyplot as plt

# WS network

# generate a WS network which has 20 nodes,

# each node has 4 neighbour nodes,

# random reconnection probability was 0.3.

WS = nx.random_graphs.watts_strogatz_graph(20, 4, 0.3)

# circular layout

pos = nx.circular_layout(WS)

nx.draw(WS, pos, with_labels = False, node_size = 30)

plt.show()

四、BA无标度网络

用random_graphs.barabasi_albert_graph(n, m)方法生成一个含有n个节点、每次加入m条边的BA无标度网络。

下面是一个例子:

import networkx as nx

import matplotlib.pyplot as plt

# BA scale-free degree network

# generalize BA network which has 20 nodes, m = 1

BA = nx.random_graphs.barabasi_albert_graph(20, 1)

# spring layout

pos = nx.spring_layout(BA)

nx.draw(BA, pos, with_labels = False, node_size = 30)

plt.show()

python networkx模块,python复杂网络处理模块networkx相关推荐

  1. python底层网络交互模块_网络和并发编程(面试题)

    1,python的底层网络交互模块有哪些? 答案:socket, urllib,urllib3 , requests, grab, pycurl 2,简述OSI七层模型以及列举各层协议 应用层:HTT ...

  2. python 网络编程模块_Python网络编程之socket模块

    1.网络协议 网络协议是网络中进行数据交换与传输所需的规则.标准或约定,得到实用主要由语法(数据与信息的结构形式).语义和同步(事件的实现顺序)三个要素组成. 世界上最先提出的协议理论模型是由国际标准 ...

  3. Python爬虫学习笔记-第二课(网络请求模块上)

    网络请求模块上 1. 相关概念介绍 1.1 向网站发起请求的方式: 1.2 url-全球统一资源定位符 1.3 User-Agent 用户代理 1.4 referer 1.5 状态码 1.6 抓包工具 ...

  4. python模块介绍- SocketServer 网络服务框架

    转载自http://my.oschina.net/u/1433482/blog/190612 摘要 SocketServer简化了网络服务器的编写.它有4个类:TCPServer,UDPServer, ...

  5. Python爬虫学习笔记-第三课(网络请求模块下)

    网络请求模块下 1. urllib-get案例 1.1 代码需求:爬取贴吧数据 1.2 代码思路 1.3 代码实现 2. urllib-post案例 3. requests模块简介 3.1 get案例 ...

  6. pythonurllib模块-Python中的urllib模块使用详解

    urllib模块提供的上层接口,使我们可以像读取本地文件一样读取www和ftp上的数据.每当使用这个模块的时候,老是会想起公司产品的客户端,同事用C++下载Web上的图片,那种"痛苦&quo ...

  7. python爬虫模块_python实现爬虫的模块总结

    网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.其本质就是利用脚本发送请求,解析响应,然后提取有用信息,最后保存下来. python由于语法简单,可 ...

  8. Python学习笔记:常用内建模块3:struct

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. python哪个关键字可以导入模块_关于python导入模块import与常见的模块详解

    0.什么是python模块?干什么的用的? Java中如果使用abs()函数,则需要需要导入Math包,同样python也是封装的,因为python提供的函数太多,所以根据函数的功能将其封装在不同的m ...

  10. python psutil库安装_安装psutil模块报错安装python-devel

    psutil/_psutil_linux.c:9:20: 错误:Python.h:没有那个文件或目录 In file included from psutil/_psutil_linux.c:19: ...

最新文章

  1. 自定义LayoutManager实现最美应用列表
  2. Programming in Scala 3rd edition中的一个问题
  3. python 内置函数__name__的作用
  4. 导入Excel表里的数据时产生【定义了过多字段】,但有时又是成功的
  5. Kubernetes pod滚动升级rolling update的一些例子,截图和命令
  6. 罐中研讨会:设置JBoss BRMS全日研讨会
  7. eclipse中java.lang.OutOfMemoryError: Java heap space错误
  8. vbs当计算机重启,用vbs实现重新启动 Internet Explorer
  9. Composer fails to download http json files on update, not a network issue, https fine
  10. python在生活中有哪些用处-Python语言有哪些用途
  11. ArcGIS水文分析实战教程(12)河网分级流程
  12. 工资太低怎么办?这几个副业每天赚300+
  13. 2T以上的盘怎么分区, 利用parted创建 linuxTB硬盘GPT分区
  14. HUSTOJ随笔3-配置文件
  15. 时间序列相似性度量-DTW
  16. 计算机设备管理cmd命令,打开设备管理器的命令,教你一分钟学会最简单
  17. mysql中解决“SELECT command denied to user ‘nature‘@‘192.168.1.49‘ for table ‘user_variables_by_thread‘“
  18. 重装Windows10后调节亮度无效,一直是最亮
  19. Chrome浏览器手动调节模拟网速
  20. python的scapy_python scapy网络嗅探

热门文章

  1. LongAdder解析
  2. centos7 firewalld日常使用
  3. Spark集群搭建【Spark+Hadoop+Scala+Zookeeper】
  4. 在JAVA EE中配置hibernate以及hibernate hello world
  5. 借助阿里云数加,小小的美甲行业被美甲帮玩出了天价。
  6. Lua截取utf-8编码的中英文混合字符串
  7. Apache Spark源码走读之8 -- Spark on Yarn
  8. Windows SQL Server 2008 群集(摘自网络)
  9. 一、cocos2dx之如何优化内存使用(高级篇)
  10. linux定时任务Crond基础概念原理介绍01