小编use*_*040的帖子

如何在 Python 的 Metis 中构建图形

我正在使用Metis for Python,一个用于 Metis(图形分区软件)的 Python 包装器。我已经安装了所有东西并且它似乎可以正常工作,但是我不明白如何构建要输入的图形。

有一个在线示例:http : //metis.readthedocs.org/en/latest/#example

>>> import networkx as nx
>>> import metis
>>> G = metis.example_networkx()
>>> (edgecuts, parts) = metis.part_graph(G, 3)
>>> colors = ['red','blue','green']
>>> for i, p in enumerate(parts):
...     G.node[i]['color'] = colors[p]
...
>>> nx.write_dot(G, 'example.dot') # Requires pydot or pygraphviz
Run Code Online (Sandbox Code Playgroud)

我运行了这个例子,它工作正常。然而,在这个例子中,他们从未指定如何构建图“example_networkx()”。我试图通过 networkx 构建图表:http ://metis.readthedocs.org/en/latest/#metis.networkx_to_metis

我的代码是:

>>> A=nx.Graph()
>>> A.add_edges_from([(3,1),(2,3),(1,2),(3,4),(4,5),(5,6),(5,7),(7,6),(4,10),(10,8),(10,9),(8,9)])
>>> G = metis.networkx_to_metis(A)
>>> (edgecuts, parts) = metis.part_graph(G, 3)
Run Code Online (Sandbox Code Playgroud)

我在最后一行出现错误。该错误可追溯到 Metis 内置代码中的这些行:

in part_graph(graph, nparts, tpwgts, …
Run Code Online (Sandbox Code Playgroud)

python graph metis

1
推荐指数
1
解决办法
2823
查看次数

列表理解中多个数组的多个操作

我想用nparray1 = np.array([1, 1, 0, 0, 1])另一个数组上的值替换数组上的“1” nparray2 = np.array([8,7,4]),以生成nparray1 = np.array([8, 7, 0, 0, 4]).

我希望尽可能有效地做到这一点,因此我认为使用列表理解将是最好的选择,但是,我无法找到一种方法来做到这一点。另一种 for 循环如下所示:

nparray1 = np.array([1, 1, 0, 0, 1])
nparray2 = np.array([8,7,4])

for i in range(len(nparray1)):
    if nparray1[i]==True:
        nparray1[i] = nparray2[0]
        nparray2    = nparray2[1:]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy list-comprehension

0
推荐指数
1
解决办法
80
查看次数

标签 统计

python ×2

arrays ×1

graph ×1

list-comprehension ×1

metis ×1

numpy ×1