1. 학습
  2. /
  3. 강의
  4. /
  5. Pythonで学ぶネットワーク分析入門

Connected

연습 문제

グラフに対するクエリ

グラフの基本的な性質を把握し、NetworkX の描画機能で一部を可視化する練習ができたところで、次はノードやエッジに対してどのようにクエリできるかを見ていきます。ここでは「関心のあるノード」と「関心のあるエッジ」を探します。これには、動画で Eric が紹介した .nodes() と .edges() メソッドを使います。.nodes() は Node view のイテラブルを、.edges() は各タプルにそのエッジに含まれるノードが入った Edge view のイテラブルを返します。これらのメソッドにキーワード引数 data=True を渡すと、ノードやエッジに紐づくメタデータも取得できることを思い出してください。

これらのクエリは、リスト内包表記を使って1行で効率よく書きます。リスト内包表記を復習したい場合は、DataCamp の Python Data Science Toolbox コースの Part 2 を参照してください。リスト内包表記の書式は次のとおりです。

[ 出力式 for イテレータ変数 in イテラブル if 述語式 ]。

ここでは、イテラブル と 述語式 を埋めてください。解答を提出する前に、IPython Shell でグラフを試しながらプロトタイプしてもかまいません。

지침

100 XP
  • リスト内包表記を使って、グラフ T から 'occupation' ラベルが 'scientist' のノードのリストを取得します。
    • 出力式 n は、イテレータ変数 n と d とともにすでに指定されています。あなたのタスクは、イテラブル と 条件式 を埋めることです。
    • ノードにアクセスするには T の .nodes() メソッドを使い、ノードのメタデータを取得するために必ず data=True を指定します。
    • イテレータ変数 d は辞書です。ここで注目するキーは 'occupation'、注目する値は 'scientist' です。
  • リスト内包表記を使って、少なくとも6年間形成されている、つまり 2010年1月1日 より前に形成されたエッジのリストを取得します。
    • ここでもタスクは イテラブル と 条件式 を埋めることです。
    • エッジにアクセスするには T の .edges() メソッドを使います。エッジのメタデータも取得するようにしてください。
    • 日付はメタデータの辞書 d に datetime.date オブジェクトとして 'date' キーの下に格納されています。たとえば 2009年1月1日 を参照するには、辞書の値は date(2009, 1, 1) となります。