Python 计算邻接矩阵中顶点的阶数

Python 计算邻接矩阵中顶点的阶数,python,python-3.x,matrix,Python,Python 3.x,Matrix,“direct.csv”是我从CAIDA Network Topology(2x4000)获取的矩阵文件,如下所示: 10010 2516; 10010 37907; 10010 55385; 10010 55387; 10010 58650; 10010 7690; 10010 9351; 10010 9615; 10010 9622; 10010 9990; 10012 23720; 10013 4686; 10015 10002; 100

“direct.csv”是我从CAIDA Network Topology(2x4000)获取的矩阵文件,如下所示: 10010 2516; 10010 37907; 10010 55385; 10010 55387; 10010 58650; 10010 7690; 10010 9351; 10010 9615; 10010 9622; 10010 9990; 10012 23720; 10013 4686; 10015 10002; 10015 17945; 10015 18264; 10015 2512; 10015 9351; 10015 9997; 我必须用它生成一个邻接矩阵,但当我必须这样做时,我得到了一个2gb的文件,对此我无能为力,所以我使用了这段代码,以便python可以处理所有数据并对其进行处理(从邻接矩阵中去掉所有的零)


我的问题是,是否有可能知道一个AS有多少个连接。例如,10010=7;10015=5,具有最高最低阶数

。。。你在问什么问题?你的意思是使用邻接矩阵吗?因为你得到的不是邻接矩阵。direct.csv是一个2列矩阵,有40000行,所以当我使用邻接矩阵时,它太大了,所以我使用这个程序将它们成对放置。我想问的是,我怎样才能知道a与任何人有多少次联系。A B;A C;A D;B E-->A=3的连接B=2的连接
import csv
import collections
import itertools

fp = open('direct.csv')

# counts how many times each pair worked together
pairs = {}

# each element of `project` is a person
for project in (p[:-1].split(',') for p in fp):
    project.sort()

    # someone is alone here
    if len(project) == 1:
        continue

    # iterate over each pair 
    for i in range(len(project)):
        for j in range(i+1, len(project)):
            pair = (project[i], project[j])
            # increase `pairs` counter
            pairs[pair] = pairs.get(pair, 0) + 1

from pprint import pprint
pprint(pairs)