我必须创建一个图形,从文档术语矩阵开始,加载到熊猫数据框架中,其中节点是术语,拱门包含两个节点同时出现的文档数量
代码运行得很好,但速度非常慢
edges = []
edges_attrs = {}
columns = list(dtm.columns)
for key in dtm.columns:
for key1 in columns:
# skip the same node
if key == key1:
continue
df = dtm.loc[(dtm[key] != 0) & (dtm[key1] != 0), [key, key1]]
docs = df.shape[0]
edges.append((key, key1))
edges_attrs[(key, key1)] = {'docs': docs}
# no double arches (u, v) == (v, u)
columns.remove(key)
graph.add_edges_from(edges)
nx.set_edge_attributes(graph, edges_attrs)
对于一个具有2k个术语(列)的dtm,它需要3个多小时,对我来说,对于这种大小来说,这听起来太多了。 关于如何加速的一些提示
不要使用for循环。了解数据库中的内部联接和外部联接。SQL入门课程将涵盖这些概念。然后,将它们应用于数据帧非常简单:
相关问题 更多 >
编程相关推荐