我有一个networkx无向加权图,它有n个节点。我想创建一个对称的自定义numpy矩阵,使其形状为n×n。我正在尝试设计一个解决方案,该解决方案不依赖于创建节点时给定的“名称”。
每条边都有一个给定的权重。
只需应用三条规则:
我确实意识到networkx具有内置的normalized\u laplacian\u matrix功能,但据我所知,它并没有构建我想要的功能。
Example:
FG=nx.Graph()
FG.add_weighted_edges_from([('A','B',0.125),('A','C',0.75),('B','D',1.2),('C','D',0.375)])
因此,这应产生以下矩阵
([[1. , 0.92872692, 1.00790526, 0. ],
[0.92872692, 1. , 0. , 0.69223218],
[1.00790526, 0. , 1. , 0.75124823],
[0. , 0.69223218, 0.75124823, 1. ]])
import networkx as nx
FG=nx.Graph()
FG.add_weighted_edges_from([('A','B',0.125),('A','C',0.75),('B','D',1.2),('C','D',0.375)])
length = len(FG.nodes())
matrix = nx.convert_matrix.to_numpy_matrix(FG)
new_matrix = np.zeros((length,length))
new_matrix = 1/np.sqrt(matrix.sum(axis=1)*matrix.sum(axis=0))
new_matrix[matrix==0] = 0
np.fill_diagonal(new_matrix,1)
new_matrix
matrix([[1. , 0.92872692, 1.00790526, 0. ],
[0.92872692, 1. , 0. , 0.69223218],
[1.00790526, 0. , 1. , 0.75124823],
[0. , 0.69223218, 0.75124823, 1. ]])
import networkx as nx
FG=nx.Graph()
FG.add_weighted_edges_from([('A','B',0.125),('A','C',0.75),('B','D',1.2),('C','D',0.375)])
length = len(FG.nodes())
matrix = nx.convert_matrix.to_numpy_matrix(FG)
new_matrix = np.zeros((length,length))
import numpy as np
for i in range(length):
for j in range(length):
if i == j:
new_matrix[i,j] = 1
elif matrix[i,j] == 0:
new_matrix[i,j] = 0
else:
w_1 = matrix[:,i].sum()
w_2 = matrix[j,:].sum()
new_matrix[i,j] = 1/np.sqrt(w_1*w_2)
new_matrix
问题内容: 我有一个定制课程, 这个类不可iterable或indexable之类的。如果有的话 可能的话,我想保持这种状态。有什么可能吗 喜欢下面的工作吗? 让我想到这个的是 以及 列为 中的“公共顺序操作” [文档](https://docs.python.org/3/library/stdtypes.html#通用-顺序- 操作)。自 已考虑 对于同一个文档的序列类型,我认为 对“range
下午好, 问候你,亚历桑德罗
问题内容: 我正在尝试建立一个简单的Java程序,该程序可以从其他多个图像(jpg)创建一个动画gif。谁能给我一个有关如何在Java中实现此目标的信息?我已经搜索过Google,但找不到任何真正有用的信息。 感谢你们! 问题答案: 这里有一个类的示例,该类从不同的图像创建动画的gif: 链接 编辑:链接似乎已死。 无论如何,为了清楚起见,这段代码是由Elliot Kroo完成的。 编辑2:感谢您
我已经开发了一些代码,并且我的所有方法都使用了我创建的名为Account的自定义对象。我现在把帐户分成两种不同的帐户,存款帐户和储蓄帐户。我的问题是,我的所有方法都使用原始的account对象,因此,我将不得不为每个不同类型的account使用两次相同的方法。这看起来效率很低,改变起来有点繁琐。理想情况下,我希望接受用户输入saving/destine,然后创建相关对象并重复使用,这样我就不需要定
Go的范围可以在地图和切片上迭代,但我想知道是否有一种方法可以在一系列数字上迭代,比如: 或者有没有一种方法来表示Go中的整数范围,就像Ruby对类范围所做的那样?
问题内容: 我正在开发一个新项目(),并创建了一个包含大量变量的Object。由于我打算为所有这些添加吸气剂和设置器,所以我想知道:是否存在在给定类中自动生成吸气剂和设置器的捷径? 问题答案: 在所需类的源代码窗口中弹出上下文菜单(即右键单击)。然后选择子菜单;从该菜单中进行选择将导致出现向导窗口。 选择您要为其创建getter和setter的变量,然后单击。