文章目录

  • 前言
  • 一、题目要求
    • 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网络的基本分析相关推荐

  1. 2017年考研英语二真题中文章来源及规律分析

    2017年 篇目 题型 标题 材料来源 文体 题材 Part1 完形填空 Would a Work-Free World Be So Bad? The Atlantic<大西洋月刊> 议论 ...

  2. 复杂网络作业1——随机生成三种网络(小世界、无标度、ER随机)

    主要是调用调用networkx和random库(可以直接构建网络.然后利用random随机生成相应数据) plt.show()可以生成相应的图片 小世界网络中要注意邻接个数必须是偶数 版本1:直接生成 ...

  3. VMware+Ubuntu16.04部署k8s多节点网络(二)——配置各节点网络

    背景 在网络配置中,我们要配置虚拟机为固定的IP地址,避免使用DCHP动态分配IP(否则每次启动k8s集群各节点的IP都变化). 配置master节点网络 在最终配置好多个节点的网络后,各个节点只有I ...

  4. 计算机基础 华师网络作业答案,17春华师《网络技术基础》在线作业

    17春华师<网络技术基础>在线作业 6 |) b9 \# T' z( | / Z; n, q* a7 u& O& T附件就是答案,需要的可以自己下载,下载相关问题参考帮助中 ...

  5. 雷电网络(二):掌握雷电网络的特点 | 区块链技术博客

    这一篇我们来看看基于智能合约的雷电网络机制有些什么特点. 首先,因为它是基于智能合约,所以能实现比闪电网络的HTLC更复杂的智能条件.可以这么说,HTLC的哈希锁机制只是雷电网络能实现的智能条件之一. ...

  6. Unity网络(二)-Unity3D中的网络

    正所谓:没有网络是没有灵魂的 欢迎关注公众号:雷潮课堂 Unity3D中的网络 一.WWW 1-1 Get 1-2 Post 1-3 案例(网络下载,本地存储与读取) 二.UnityWebReques ...

  7. 2020年人工神经网络第二次作业-参考答案第一题

    如下是 2020年人工神经网络第二次作业 中第一题的参考答案. ➤01 第一题参考答案 1.题目分析 (1) 已知条件 本题中的建立的是一个由两个竞争节点组成的竞争网络.竞争层的神经元和五个训练样本都 ...

  8. 计算机网络软考英语题,软考:网络工程师英文真题.doc

    软考:网络工程师英文真题 09下半年网络工程师英文真题.译文及答案 Routing protocols use different techniques for assigning(71)to ind ...

  9. Java+spring 基于ssm的网络作业提交与批改系统#毕业设计

    *文末获取源码 开发环境 项目编号:Java+spring ssm406网络作业提交与批改系统#毕业设计 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务: ...

  10. SAP PS 模块,项目、WBS与网络作业概念

    项目定义        项目定义是项目的唯一标识.通过项目定义,决定了包含于其中的所有WBS元素的组织结构.计划方法.预算方式以及结算方法等信息.而项目定义中的数据,则主要来源于"项目参数文 ...

最新文章

  1. Python3 登陆网页并保持cookie
  2. (译)Web地图设计模式——ArcGIS Server
  3. [工具]sublime text2-前端开发利器
  4. 【二分答案】【哈希表】【字符串哈希】bzoj2946 [Poi2000]公共串
  5. 微视已死,腾讯战略放弃微视,大牛纷纷离职,PMcaff--行业内部解读
  6. 为SAP Spartacus安装后台必须的Commerce Cloud
  7. FAR,FRR,EER
  8. 算法与数据结构10.1
  9. 《自己动手做交互系统》——1.2 制作过程
  10. tensorflow中的tf.get_variable
  11. MSN蠕虫Myalbum2007.zip专杀工具
  12. 认识VBA------------------VBA基础
  13. 用Firefox看CHM电子书
  14. Sverlet案例小萌神服务器端
  15. cad快看_CAD三维这样材质贴图,你学会了吗 ?
  16. Matlab 界面设计简单入门(App Designer)
  17. python重启路由器_Python实现路由器的重启和查看实时流量
  18. 我来告诉你,那些博客中的gif动态图是怎么弄的?
  19. 安装部署WSUS服务器
  20. android8.1 source build/envsetup.sh分析 增加删除lunch

热门文章

  1. 支付宝查询对账单对账+解压并将数据读取解析入库
  2. cogs2235 烤鸡翅 贪心
  3. 使用sql服务器发送贺卡_发送免费电子贺卡的最佳网站
  4. DAY1:尚学堂高琪JAVA(1~20)
  5. numpy.take()用法
  6. Mysql——DQL(查询语句语法、格式、举例)以及全部数据库源码,复制就可实现全部功能
  7. idea 中 maven 项目依赖关系 查看 箭头的含义
  8. win10去除快捷小箭头_【批处理】win 去除桌面图标小箭头
  9. 注解unchecked的原因_详解java中的5个基本注解
  10. 雨课堂知识点总结(十六)