機械翻訳について

Python (PGX)インタプリタ

Python (PGX)パラグラフは%python-pgxで始まり、使用可能なPyPGX APIを使用できます。

PyPGX APIの詳細は、「Python APIリファレンス」を参照してください。

ヒント:

ノートブックの段落の下部にカーソルを置き、python_icon「Python-PGX段落の追加」アイコンをクリックして、Python (PGX)段落をノートブックに即時に開きます。

Python段落を使用する場合、PGXの対話を容易にするために、次の変数が組み込まれています:

  • session: ユーザーにバインドされているPgxSessionオブジェクト。 現在メモリーにロードされているすべてのグラフには、sessionオブジェクトを介してアクセスできます。 セッションは、使用されていない時間が経過するとタイムアウトになることに注意してください。 ノートブックに再度ログインすると、新しいセッションが作成されます。そのため、基礎となるセッションIDが常に同じとはかぎりません。

  • instance: PGXサーバーを指すServerInstance

  • visual_query: PGQL問合せを可視化可能な出力に変換するためのヘルパー・オブジェクト。

  • analyst: PageRankやBetweenness Centralityなど、すべての組込みグラフ・アナリティクスへのアクセスを提供するヘルパー・オブジェクト。

次のインポートは、すべてのPython (PGX)段落でデフォルトで使用できます:

import pypgx

また、Python (PGX)インタプリタは、次のPythonライブラリをサポートしています。 ただし、これらのモジュールをPython (PGX)段落で使用するには、これらのモジュールをインポートする必要があります。

  • NumPy
  • scikit-learn
  • oracledb
  • Matplotlib
  • pandas
  • SciPy
  • requests
  • openpyxl

次に、組込みアルゴリズムを実行してグラフ内の三角形の数をカウントするPython (PGX)段落の例を示します:

%python-pgx
# Reference in-memory graphs by name
graph = session.get_graph("FIRST_GRAPH")
# Running an algorithm to determine the number of triangles in a graph
analyst.count_triangles(graph, True)

Python段落内に新しいヘルパー・クラス/関数を定義することもできます。 たとえば:

%python-pgx
import math
# Define helper classes/functions
class Functions:
    def haversine (lat1, lon1, lat2, lon2):
       delta_lon = (lon2 - lon1) * math.pi/180
       delta_lat = (lat2 - lat1) * math.pi/180
       a = math.pow(math.sin(delta_lat/2),2) + math.cos(lat1 * math.pi/180) * math.cos(lat2 * math.pi / 180) * math.pow(math.sin(delta_lon / 2), 2)
       c = 2 * math.asin(math.sqrt(a))
       r = 6371 #  Radius of the Earth in kilometers. Use 3956 for miles
       return c * r
Functions.haversine(30.26, 97.74, 48.13, 11.58)

内部的には、Python (PGX)インタプリタは、Java (PGX)インタプリタと同じPGXセッションで動作します。 そのため、Java (PGX)段落で計算された分析結果は、後続のPython (PGX)段落で問い合せることができます。

次の例は、Java (PGX)パラグラフで計算されたPageRank値を示しています。 その後、グラフのpagerankプロパティは、後続のPython (PGX)段落で問い合せられます。

%java-pgx
var g = session.getGraph("MY_FIRST_GRAPH")
session.createAnalyst().pagerank(g)
%python-pgx
session.execute_pgql("SELECT x.pagerank FROM MATCH (x) ON MY_FIRST_GRAPH").print()