微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 np.array 在 networkx 中创建网络

如何解决从 np.array 在 networkx 中创建网络

我有一个包含 32.000 x 32.000 元素的 NumPy 数组(邻接矩阵)。这些元素中的每一个都是 0 或一个数字 ]0,1](余弦相似度) - 节点 I 和 j 之间边的权重。每个节点有 120 个邻居,这意味着在 numpy 的每一行中有 120 个非零元素。

B = [[0. 0. 0. ... 0.43 0. ...]...]

当我创建网络时:

network = nx.from_numpy_matrix(B,nx.DiGraph)

并打印节点的度数:

network.degree

结果是:

DegreeView({0: 126,1: 125,2: 212,3: 158,4: 135,5: 306,6: 288,7: 178,8: 232,9: 158,10: 176,11: 132,12: 149,13: 137,14: 368,15: 264,16: 143,17: 158,18: 148,19: 175,20: 182,21: 183,22: 169,23: 137,24: 258,25: 312,26: 124,27: 191,28: 186,29: 120,30: 317,31: 125,32: 137,33: 410,34: 122,35: 206,36: 327,37: 137,38: 177,39: 201,40: 299,41: 136,42: 139,43: 411,44: 138,45: 134,46: 179,47: 125,48: 179,49: 126,50: 159,51: 122,52: 199,53: 159,54: 169,55: 140,56: 130,57: 125,58: 178,59: 163,60: 143,61: 140,62: 119,63: 217,64: 301,65: 157,66: 158,67: 165,68: 238,69: 146,70: 133,71: 157,72: 119,73: 132,74: 153,75: 121,76: 152,77: 156,78: 120,79: 142,80: 134,81: 134,82: 157,83: 142,84: 145,85: 120,86: 471,87: 124,88: 159,89: 120,90: 141,91: 174,92: 140,93: 119,94: 178,95: 122,96: 123,97: 264,98: 144,99: 247,100: 134,101: 129,102: 124,103: 269,104: 193...})

为什么我的节点的度数不是 120?

解决方法

看起来您有一个有向图,因此在这种情况下,“入度”和“出度”可能不同。节点 i 的出度为离开节点 i 的边数,节点 i 的入度为节点 i 上的边数。

当您说每个节​​点的度数为 120 时,您的意思是入度或出度应该是 120 吗?在 networkx 中,degree 是有向图的入度和出度之和。您可以尝试 in degreeout degree,看看是否是您想要的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。