1

color属性を使用して、グラフの2種類のエッジに色を付けました。

G.add_edge(fgh,cde,color='blue')

fghcde異なる要素を接続するために使用される変数です)(ループの一部でfghありcde、それらの値は反復ごとに変化します)

そのグラフをgpickle形式で保存しましたが、保存したグラフから特定の色のエッジを取得しようとしています。

私がやりたいのは、ランダムなエッジを取得することですが、それらは特定の色でなければなりません。私を助けてくれてありがとう

4

1 に答える 1

3

pickle からグラフをロードした後、最初に目的の色のすべてのエッジを見つけることができます (ドキュメントを参照)。

be = []
for e in G.edges_iter():
    if G.edge[e[0]][e[1]]['color'] == 'blue': # or G[e[0]][e[1]]['color']
        be.append(e)

またはリスト内包表記で:

be = [(n1, n2) for n1, n2 in G.edges_iter() if G.edge[n1][n2]['color'] == 'blue']

random次に、モジュールの助けを借りてランダムなエッジを選択します。たとえばchoice、 またはsample:

import random

# Select one random edge...
random_blue_edge = random.choice(be)

# ... or several random edges, 3 in this case
random_blue_edges = random.sample(be, 3)

ただし、またはbeに電話する前に、 を確認してください。を呼び出したときにシーケンスが空の場合はを取得し、サンプリングしたい数よりもシーケンスが短い場合はを取得します。random.choicerandom.samplerandom.choiceIndexErrorrandom.sampleValueError

于 2012-06-01T19:09:37.260 に答える