NetworkXを使用して、次のグラフを作成します。NetworkX - ノード周りのパス
グラフを使用して作成されます。その二つのノードがそれらの位置に関して変更された後(だけ回答するために必要な、数字ではなく説明するために)
G = nx.grid_2d_graph(4,3)
。
G.neighbors((1, 1))
出力:次のコードを使用して
[(0, 1), (1, 2), (1, 0), (2, 1)]
私はほかに必要なものがポイントです:
[(0, 2), (2, 2), (2, 0), (0, 0)]
これは周囲に "ループ" を構成するだろうその「ループ」内のすべてのノードを含む(1,1)。私はグラフの観点から正しい命名法を知らないので、私が探しているものを検索するのは苦労します。
EDIT:@orestissに触発され、私はこの思い付いたの周りいじるされた後
。それと
l = list()
center = (1, 1)
for neighb in G.neighbors(center):
others = [n for n in G.neighbors(center) if n != neighb]
for other in others:
l.append([n for n in nx.common_neighbors(G, neighb, other) if n != center])
l.append([neighb])
lf = list(set([item for sublist in l for item in sublist]))
私はセンター自体を除き、サイクル周りセンターにあるすべてのノードを取得します。 これは境界ノードに対しても機能します。
この概念は、正方格子状に理にかなって、おそらくありません。適切な答えを出すためにこれを探している理由をもう少し詳しく教えてください。 – Joel
私は、CFDシミュレーション(いわゆるブロック構造メッシュ)のメッシュ生成のための方形格子を扱います。メッシュスムージングアルゴリズム(角度ベースのスムージングなど)を実装できるためには、それらのノードへの参照が必要です。私は独自のデータ構造を持っていますが、グラフを採用したいのですが、そこにはすでに他の機能があり、私は自分のプロジェクトに適用することができます。そして私はグラフについてもっと知りたいと思っています:) – chiefenne