巴拉巴西网络科学学习

《巴拉巴西网络科学》学习

相关图表数据的生成代码以及数据 - -python代码

文章主要目的

  1. 本文主要是对于巴拉巴西网络科学一书P37表格中相关数据的计算代码
  2. 其中的十个经典网络得原始数据来源于巴拉巴西网络科学一书的在线资源

代码

##巴拉巴西网络科学课本p37 -- python
import networkx as nx
import os
from networkx.algorithms.centrality.degree_alg import in_degree_centrality
from networkx.algorithms.connectivity import edge_augmentation
import numpy as np
import re

##输入数据名,且选择网络是否为有向图
network_name = input('请输入要分析的网络名称:')
is_direct = input('是否为有向图(y/n):')
file_address =".." + os.sep + network_name + '.edgelist.txt'

#构造网络
if is_direct == "y":
    g = nx.read_edgelist(file_address, create_using=nx.DiGraph())
    print(network_name + "是否是有向图:",nx.is_directed(g))
    #统计量
    print(network_name + '节点数:',g.number_of_nodes())      #网络节点数
    print(network_name + '边数:',g.number_of_edges())       #网络边数
    in_degree_list = []
    for se in g.in_degree:
        in_degree_list.append(se[1])
    print(network_name + '平均入度:',sum(in_degree_list)/g.number_of_nodes())     #网络平均
else:
    g = nx.read_edgelist(file_address)
    print(network_name + "是否是有向图:",nx.is_directed(g))
    #统计量
    print(network_name + '节点数:',g.number_of_nodes())      #网络节点数
    print(network_name + '边数:',g.number_of_edges())       #网络边数
    degree_list = []
    for se in g.degree:
        degree_list.append(se[1])
    print(network_name + '平均入度:',sum(degree_list)/g.number_of_nodes())     #网络平均


代码使用说明

  1. 首先代码为python代码
  2. 其次代码需要原数据集,数据集及代码链接(点击此处)
  3. 运行时需要输入要计算的网络名称(eg:protein,metabolic,数据集文件的文件名),和其是否为有向图(eg:y,n)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值