Julia PyCallでPythonの組み込み関数、モジュールを用いる

JuliaでPyCallというPythonの関数、モジュールを用いることができるパッケージがありましたので、

その方法について紹介します。

PyCallをインストール

対話型実行環境で以下のようなコマンドを実行

julia > using Pkg
julia > Pkg.add("PyCall")

これでPyCallが使えるようになりました。

組み込み関数を用いる

組み込み関数とは、効率的にプログラミングをするためにPythonにあらかじめ用意されている関数のことです。

Pythonの全組み込み関数はこちら

方法

using PyCall
変数 = py"組み込み関数名"
# example
abs = py"abs" # abs()
int = py"int" # int()

Pythonの組み込み関数をいろいろつかってみました。

using PyCall

pyabs = py"abs"
pyfloat = py"float"
pylist = py"list"
pylen = py"len"
pymax = py"max"
pymin = py"min"

num = -100
println(pyabs(num))
println(pyfloat(num))
data = pylist([1,2,3,4,5,6,7,8,9,10])
println(pylen(data))
println(pymax(data))
println(pymin(data))

実行結果

100
-100.0
10
10
1

モジュールをインポートする

方法

using PyCall
変数 = pyimport("モジュール名")
# example
np = pyimport("numpy") # import numpy as np
pd = pyimport("pandas") # import pandas as pd

例として、Matplotlibでsin関数を描いてみましょう。

using PyCall
plt = pyimport("matplotlib.pyplot")
x = range(-2pi, 2pi, length=100)
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.plot(x, sin.(x), "-", c="b", ms=10)
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_title("2D Line Plot Sine-curve")
ax.grid(true)
plt.show()

実行結果

sin関数が描けました(^▽^)/

参照

https://github.com/JuliaPy/PyCall.jl

https://qiita.com/ttabata/items/3afc8cef40d1e98a7b17

https://qiita.com/tenfu2tea/items/d2ac1427eaed7a548287