复杂网络作业二:第一题——Wikipedia vote网络的基本分析
文章目录
- 前言
- 一、题目要求
- 1. Wikipedia vote网络的基本分析:
- 二、需要使用的函数的介绍
- 1.导入networkx
- 2.建图DiGraph()
- 3.获取点集nodes
- 4.遍历边集edges()
- 5.获取由出度构成的图pred
- 6.获取由入度构成的图succ
- 三、代码
- 运行结果
前言
完成了作业的第一题,记录一下 。比较简单主要是为了熟悉networkx的使用。(没有选择SNAP)
一、题目要求
1. Wikipedia vote网络的基本分析:
数据集下载地址:http://snap.stanford.edu/data/wiki-Vote.html使用分析工具加载Wikipedia voting 网络。该网络为有向图。节点集合V,边集E,边(a, b)表示用户a投票给用户b。
计算并打印如下统计结果:
(1)网络中的节点数量
(2)网络有自环的节点数量
(3)网络中有向边的数量
(4)网络中无向边的数量
(5)网络中的互惠边的数量
(6)出度非零的节点数量
(7)入度非零的节点数量
(8)出度大于10的节点数量
(9)入度小于10的节点数量
二、需要使用的函数的介绍
1.导入networkx
import networkx as nx
2.建图DiGraph()
G = nx.DiGraph(edge_list) #edge_list是一个边集
3.获取点集nodes
node_list = G.nodes #node_list中的是所有的点
4.遍历边集edges()
for u, v in G.edges():#在这下面可以加上对应的代码
5.获取由出度构成的图pred
out_degreeG = G.pred #out_deggreeG是由出度构成的图
6.获取由入度构成的图succ
in_degreeG = G.succ#in_deggreeG是由出度构成的图
在第一个题中就使用以上函数就够了,剩下的就是python中的list,dict中的操作了。
三、代码
# -*- coding: utf-8 -*-import networkx as nx
import argparse
import matplotlib.pyplot as pltdef getEdge(data_path):edge_list = []with open(data_path,encoding='utf-8') as f:line = f.readline()while line != "":if(line == '\n' or line[0] == '#'):line = f.readline()continueedge = tuple(map(int,line[:-1].split(' '))) #这个不是空格edge_list.append(edge)line = f.readline()return edge_list
def main(option):file_path = option.file_path#自己写的文件解析,不清楚networkx有没有内置的方法可以直接导入edge_list = getEdge(file_path) G = nx.DiGraph(edge_list)node_list = G.nodescnt_nodes = len(node_list)print("图中的结点数量:", cnt_nodes)cnt_self = 0for u, v in G.edges():if (u == v):cnt_self += 1print("自环的节点数量:", cnt_self)print("有向边的数量:", G.number_of_edges())out_degreeG = G.predcnt_undir = 0for node in out_degreeG:for edge in out_degreeG[node]:node_to = edgeif (node in out_degreeG[node_to]):cnt_undir += 1print("无向边的数量:", cnt_undir)# 互惠边的概念与无向边类似print("互惠边的数量:", cnt_undir)cnt_out_zero = 0for node in out_degreeG:if (out_degreeG[node] == {}):cnt_out_zero += 1print("出度为零的节点数量:", cnt_out_zero)in_degreeG = G.succcnt_in_zero = 0for node in in_degreeG:if (in_degreeG[node] == {}):cnt_in_zero += 1print("入度为零的节点数量:", cnt_in_zero)cnt_out_u10 = 0for node in out_degreeG:if (len(out_degreeG[node]) > 10):cnt_out_u10 += 1print("出度大于零的节点数量:", cnt_out_u10)cnt_in_l10 = 0for node in in_degreeG:if (len(in_degreeG[node]) < 10):cnt_in_l10 += 1print("入度为零的节点数量:", cnt_in_zero)if __name__ == "__main__":arg = argparse.ArgumentParser()arg.add_argument("--file_path",type=str,default=r"Wiki-Vote.txt")opt = arg.parse_args()main(opt)
运行结果
图中的结点数量: 7115
自环的节点数量: 0
有向边的数量: 103689
无向边的数量: 5854
互惠边的数量: 5854
出度为零的节点数量: 4734
入度为零的节点数量: 1005
出度大于零的节点数量: 1906
入度为零的节点数量: 1005
复杂网络作业二:第一题——Wikipedia vote网络的基本分析相关推荐
- 2017年考研英语二真题中文章来源及规律分析
2017年 篇目 题型 标题 材料来源 文体 题材 Part1 完形填空 Would a Work-Free World Be So Bad? The Atlantic<大西洋月刊> 议论 ...
- 复杂网络作业1——随机生成三种网络(小世界、无标度、ER随机)
主要是调用调用networkx和random库(可以直接构建网络.然后利用random随机生成相应数据) plt.show()可以生成相应的图片 小世界网络中要注意邻接个数必须是偶数 版本1:直接生成 ...
- VMware+Ubuntu16.04部署k8s多节点网络(二)——配置各节点网络
背景 在网络配置中,我们要配置虚拟机为固定的IP地址,避免使用DCHP动态分配IP(否则每次启动k8s集群各节点的IP都变化). 配置master节点网络 在最终配置好多个节点的网络后,各个节点只有I ...
- 计算机基础 华师网络作业答案,17春华师《网络技术基础》在线作业
17春华师<网络技术基础>在线作业 6 |) b9 \# T' z( | / Z; n, q* a7 u& O& T附件就是答案,需要的可以自己下载,下载相关问题参考帮助中 ...
- 雷电网络(二):掌握雷电网络的特点 | 区块链技术博客
这一篇我们来看看基于智能合约的雷电网络机制有些什么特点. 首先,因为它是基于智能合约,所以能实现比闪电网络的HTLC更复杂的智能条件.可以这么说,HTLC的哈希锁机制只是雷电网络能实现的智能条件之一. ...
- Unity网络(二)-Unity3D中的网络
正所谓:没有网络是没有灵魂的 欢迎关注公众号:雷潮课堂 Unity3D中的网络 一.WWW 1-1 Get 1-2 Post 1-3 案例(网络下载,本地存储与读取) 二.UnityWebReques ...
- 2020年人工神经网络第二次作业-参考答案第一题
如下是 2020年人工神经网络第二次作业 中第一题的参考答案. ➤01 第一题参考答案 1.题目分析 (1) 已知条件 本题中的建立的是一个由两个竞争节点组成的竞争网络.竞争层的神经元和五个训练样本都 ...
- 计算机网络软考英语题,软考:网络工程师英文真题.doc
软考:网络工程师英文真题 09下半年网络工程师英文真题.译文及答案 Routing protocols use different techniques for assigning(71)to ind ...
- Java+spring 基于ssm的网络作业提交与批改系统#毕业设计
*文末获取源码 开发环境 项目编号:Java+spring ssm406网络作业提交与批改系统#毕业设计 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务: ...
- SAP PS 模块,项目、WBS与网络作业概念
项目定义 项目定义是项目的唯一标识.通过项目定义,决定了包含于其中的所有WBS元素的组织结构.计划方法.预算方式以及结算方法等信息.而项目定义中的数据,则主要来源于"项目参数文 ...
最新文章
- Python3 登陆网页并保持cookie
- (译)Web地图设计模式——ArcGIS Server
- [工具]sublime text2-前端开发利器
- 【二分答案】【哈希表】【字符串哈希】bzoj2946 [Poi2000]公共串
- 微视已死,腾讯战略放弃微视,大牛纷纷离职,PMcaff--行业内部解读
- 为SAP Spartacus安装后台必须的Commerce Cloud
- FAR,FRR,EER
- 算法与数据结构10.1
- 《自己动手做交互系统》——1.2 制作过程
- tensorflow中的tf.get_variable
- MSN蠕虫Myalbum2007.zip专杀工具
- 认识VBA------------------VBA基础
- 用Firefox看CHM电子书
- Sverlet案例小萌神服务器端
- cad快看_CAD三维这样材质贴图,你学会了吗 ?
- Matlab 界面设计简单入门(App Designer)
- python重启路由器_Python实现路由器的重启和查看实时流量
- 我来告诉你,那些博客中的gif动态图是怎么弄的?
- 安装部署WSUS服务器
- android8.1 source build/envsetup.sh分析 增加删除lunch