実行環境とか
サンプルコード実行用Jupyter notebook
書籍のサンプルコードが動く&日本語が使えるように調整したJupyter notebookのDockerイメージをnozma/ml-python-notebook
で公開しています(nozma/ml-python-notebook - Docker Hub)。
docker run -p 8888:8888 nozma/ml-python-notebook
などとやればJupyter notebookが起動すると思います。
この文章を執筆しているRStudio
この文章自体はR Studioとbookdownパッケージを用いて執筆しており、こちらの環境はnozma/ml-python-notebook-r
で公開しています(nozma/ml-python-notebook-r - Docker Hub)。
Dockerがセットアップされている環境で
docker run -p 8787:8787 nozma/ml-python-notebook-r
とし、 http://localhost:8787 にアクセスするとR Studio Serverの起動画面が表示されます。ユーザー名、パスワードはいずれもrstudio
です。
R Markdown中でPythonを使用するためには、Pythonのengine.pathを明示的にpython3と指定してやる必要があります。このテキストでは、.Rmdファイルに、以下のコードチャンクを設置してこの設定を行っています。
```{r setup, echo=FALSE}
knitr::opts_chunk$set(
engine.path = list(python = "/usr/bin/python3"),
collapse = TRUE,
comment = " ##"
)
```
また、日本語フォントとしてIPAexGothicをインストールしてあります。matplotlibで使用する場合は、以下のコードチャンクをファイル冒頭などに記述してください。
```{python}
matplotlib.rc('font', family='IPAexGothic') # 日本語プロット設定
```
R sessionInfo
utils::sessionInfo()
## R version 3.4.3 (2017-11-30)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Debian GNU/Linux 9 (stretch)
##
## Matrix products: default
## BLAS: /usr/lib/openblas-base/libblas.so.3
## LAPACK: /usr/lib/libopenblasp-r0.2.19.so
##
## locale:
## [1] LC_CTYPE=ja_JP.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=ja_JP.UTF-8 LC_COLLATE=ja_JP.UTF-8
## [5] LC_MONETARY=ja_JP.UTF-8 LC_MESSAGES=C
## [7] LC_PAPER=ja_JP.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=ja_JP.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets base
##
## loaded via a namespace (and not attached):
## [1] compiler_3.4.3 backports_1.1.2 bookdown_0.7 magrittr_1.5
## [5] rprojroot_1.3-2 tools_3.4.3 htmltools_0.3.6 yaml_2.1.18
## [9] Rcpp_0.12.16 stringi_1.1.7 rmarkdown_1.9 knitr_1.20
## [13] methods_3.4.3 xfun_0.1 stringr_1.3.0 digest_0.6.15
## [17] evaluate_0.10.1
Python環境
import sys
print(sys.version)
## 3.5.3 (default, Jan 19 2017, 14:11:04)
## [GCC 6.3.0 20170118]
from pip.utils import get_installed_distributions
[print(d) for d in get_installed_distributions()]
## wcwidth 0.1.7
## traitlets 4.3.2
## simplegeneric 0.8.1
## scipy 1.0.0
## scikit-learn 0.19.1
## pytz 2018.3
## python-dateutil 2.7.0
## pyparsing 2.2.0
## Pygments 2.2.0
## ptyprocess 0.5.2
## prompt-toolkit 1.0.15
## Pillow 5.0.0
## pickleshare 0.7.4
## pexpect 4.4.0
## parso 0.1.1
## pandas 0.22.0
## numpy 1.14.2
## mglearn 0.1.6
## matplotlib 2.2.2
## kiwisolver 1.0.1
## jedi 0.11.1
## ipython 6.2.1
## ipython-genutils 0.2.0
## graphviz 0.8.2
## decorator 4.2.1
## cycler 0.10.0