在 Python 中为大型数据集创建邻接矩阵
Posted
技术标签:
【中文标题】在 Python 中为大型数据集创建邻接矩阵【英文标题】:Create Adjacency Matrix in Python for large Dataset 【发布时间】:2016-06-25 15:33:27 【问题描述】:我在用 Python 的邻接矩阵表示网站用户行为时遇到问题。我想分析 43 个不同网站之间的用户交互,看看哪些网站是一起使用的。
给定的数据集大约有 13.000.000 行,结构如下:
user website
id1 web1
id1 web2
id1 web2
id2 web1
id2 web2
id3 web3
id3 web2
我想在邻接矩阵中可视化网站之间的交互,如下所示:
web1 web2 web3
web1 2 2 0
web2 2 4 1
web3 0 1 1
我很高兴得到任何建议
【问题讨论】:
【参考方案1】:import scipy.sparse
data = """
id1 web1
id1 web2
id1 web2
id2 web1
id2 web2
id3 web3
id3 web2
"""
data = np.array(data.split()).reshape(-1, 2)
_, i = np.unique(data[:, 0], return_inverse=True)
_, j = np.unique(data[:, 1], return_inverse=True)
incidence = scipy.sparse.coo_matrix((np.ones_like(i), (i,j)))
adjecency = incidence.T * incidence
print(adjecency.todense())
【讨论】:
以上是关于在 Python 中为大型数据集创建邻接矩阵的主要内容,如果未能解决你的问题,请参考以下文章