У меня есть массив NumPy (матрица смежности) с элементами 32000 x 32000. Каждый из этих элементов равен 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 степень - это сумма степени входа и выхода для ориентированного графа. Вы можете попробовать в степени или степень и посмотреть, хотите ли вы этого.