- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想使用 networkx 库比较两个图。我想尝试包含 3 个节点的硬编码示例。其中一张图被引用,所以我想检查第二张图的边缘是否在同一个地方。我在考虑简单的算法,该算法将从给定的引用图中减去引用图,如果结果不是空图,则返回 false。
我的代码如下,但它不工作:
import networkx as nx
import matplotlib.pyplot as plt
S=nx.DiGraph()#S-sample graph
S.add_nodes_from([0,1,2])
S.add_edge(0,2)
S.add_edge(1,2)
nx.draw(S)
#plt.savefig("S.png")
#plt.show()
R=nx.DiGraph()#R-reference graph
R.add_nodes_from([0,1,2])
R.add_edge(1,2)
nx.draw(R)
#plt.savefig("R.png")
#plt.show()
def difference(S, R):
DIF=nx.create_empty_copy(R)
DIF.name="Difference of (%s and %s)"%(S.name, R.name)
if set(S)!=set(R):
raise nx.NetworkXError("Node sets of graphs is not equal")
# if S.is_multipgraph():
# edges=S.edges_iter(keys=True)
# else:
edges=S.edges_iter()
for e in edges:
if not R.has_edge(*e):
DIF.add_edge(*e)
return DIF
D=difference(S, R)
plt.show(D)
最佳答案
您是否要使用引用 (R) 图中的边计算图 (DIF),而不是输入图 (S) 中的边?还是要计算 R 和 S 之间不同边的图形?我包括了两个选项,一个被注释掉了。
import networkx as nx
S = nx.DiGraph()#S-sample graph
S.add_nodes_from([0, 1, 2])
S.add_edge(0, 2)
S.add_edge(1, 2)
R = nx.DiGraph()#R-reference graph
R.add_nodes_from([0, 1, 2])
R.add_edge(1, 2)
def difference(S, R):
DIF = nx.create_empty_copy(R)
DIF.name = "Difference of (%s and %s)" % (S.name, R.name)
if set(S) != set(R):
raise nx.NetworkXError("Node sets of graphs is not equal")
r_edges = set(R.edges_iter())
s_edges = set(S.edges_iter())
# I'm not sure what the goal is: the difference, or the edges that are in R but not in S
# In case it is the difference:
diff_edges = r_edges.symmetric_difference(s_edges)
# In case its the edges that are in R but not in S:
# diff_edges = r_edges - s_edges
DIF.add_edges_from(diff_edges)
return DIF
print(difference(S, R).edges())
此版本打印 [(0, 2)]
正如@Joel 所注意到的,在无向图中,不保证(至少:我没有在源代码或文档中找到它)节点的顺序是一致的。如果这是一个问题,您可以先将元组转换为卡住集,因此顺序无关紧要。您需要卡住集,而不是集合或列表,因为它们是可散列的(这是对集合成员的要求)
set([frozenset(x) for x in S.edges()])
关于python - 计算 networkx 中两个图 'edge wise' 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33477811/
如果我想按行(或按列)将函数应用于 ndarray,我是看 ufuncs(看起来不像)还是某种类型的数组广播(不是我要找的)要么?)? 编辑 我正在寻找类似于 R 的应用函数的东西。例如, apply
这里是完整问题的链接:https://youtu.be/5dJSZLmDsxk问题:创建一个函数,返回二维数组中负整数的个数,使得数组中每一行的整数从索引 0 到 n 增加大小,而每一列的整数从上到下
我知道,我知道……停止使用 WISE。这对我来说现在不是一个真正的选择。我们有太多的事情要做,无法编写一个全新的安装程序并更改我们的整个构建过程,而这正是我们必须要做的。 无论如何,问题是我们的卸载
我不知道如何在有限的空间里更好地表达我的问题。这是更好的解释: 我有一个长度为5的String[] test。该类用于编辑test以便在另一个类中可编辑。无论如何,我的构造函数传入要设置为 test
如何手动计算~a?我经常看到这类问题。 #include int main() { unsigned int a = 10; a = ~a; printf("%d\n", a
我目前有一个游戏,我已经为其实现了客户端和服务器。 然后,我让服务器向客户端发送有关其位置的数据,客户端向服务器发送移动输入,等等。 问题是CPU飙升到100%。我已将高使用率直接连接到以下代码,该代
假设我有一个二维数组,例如像这样: val A1 = Array(Array(4,0,0,0),Array(3),Array(3,4,40,1),Array(50,2)) 现在我想在每个位置拥有最多的
我有一个 3d numpy 数组 u,形状 (k, m, n),我正在尝试计算一个新数组 uprod,形状 (k, m, n),这样 uprod[j] = np.dot (A, u[j]),其中 A
可能是重复的,但我找不到任何东西。 我有一个很长的迭代器(10000 个项目),我需要一次迭代约 500 个项目。因此,如果我的迭代器是 range(10000),它将如下所示: Iteration
这个问题在这里已经有了答案: bit-wise operation unary ~ (invert) (5 个答案) 关闭 4 年前。 为什么 bitwise not 没有按预期的方式切换位?请参见
工具提示工作正常,但我想在 Day Wise 之间显示它,而不是在几天之间。目前它正在自由移动,我只想展示它与 JS fiddle 示例一样明智。 最小代码示例。 StackBlitz Code 我希
我有这个问题 library(tidyverse) data_frame(first = c("a", NA, "b"), second = c(NA, "b", NA),
我有这个问题 library(tidyverse) data_frame(first = c("a", NA, "b"), second = c(NA, "b", NA),
我有 2D numpy 数组,示例形状: >>> a.shape (48, 160) 我想在元素之间或每行之间进行简单的操作,例如 a[0] - a[1]但对于所有其他行的每一行。 我知道如何简单地使
我的 table 是这样的 Attendance ---------- Studentid | Date | Status --------------------------------
启用后,eInk Kindles 和一些 Kindle 应用程序会在不常用的单词上方显示定义。例如: 我试图用 标签模拟这个特性,但是当定义比定义的词长时它不起作用。此外,如果您仔细观察屏幕截图,您会
你好,我想在 C++ 中评估一个数学函数(用户定义的),它在一个数组中返回几个值(这个函数是一个基于 vector 的函数 f:R^n->R^m,具有 n 个输入坐标和 m 个输出函数)参数,例如:
我有下面的 HTML 表格,我正在尝试的是“彩色表格标题”在这个例子中必须显示不同的颜色,比如蓝色。Peter、Lois、Joe、Cleveland 应为绿色(与 FistName LastName
在阅读了一些地方之后,我对 SSL 有了一个清晰的认识。但是自学 PHP 开发人员可以从哪里学习如何实现 SSL - 是否有明智的步骤指南? 具体疑问 - SSL 证书将是一个文本文件、一个可安装的应
这个问题在这里已经有了答案: Which is better option to use for dividing an integer number by 2? (22 个答案) 关闭 6 年前。
我是一名优秀的程序员,十分优秀!