PyCharmの scientific modeがスゴい!Jupyter Notebookいらないかもよ

    はじめに {#はじめに}

    Kaggleで、scriptを書く人と、Jupyter Notebookを書く人がいるのだけれども、どっちが生産性がいいのかなというのが、ふと自分のなかに疑問として湧き上がった。自分は、Jupyter Notebook派だ。しかし、別の方法も試してみるのも、気分転換になるかもとおもい、しばらくぶりにPyCharmを使おうとした。

    すると、2017/11に出た最新版 2017.3 で Professional Editionに追加された機能、Scientifc modeがなんだかスゴそうだったので、今回紹介する。

    Scientific Mode {#scientific-mode}

    まずは、公式サイトからの紹介を翻訳。

    [https://www.youtube.com/embed/OHwh0c8UsW4?start=66]

    特徴 {#特徴}

    • iPyrhon Notebook(Jupyter Notebook)がPyChamに結合。
    • IDEの恩恵を十分に受けて開発できる。自動補完、ナビゲーション、エラーチェックなど。
    • 対話的Python コンソールで REPL駆動開発ができる。
    • NumpyやPandasのデータ構造を見るViewerがある。
    • MatplotlibをインタラクティブにみるViewerがある。
    • Anaconda連携

    有効方法 {#有効方法}

    ツールバーの 表示 > Scientifc モードを選択。すると、

    • プロジェクトView
    • Python コンソール
    • ドキュメントView
    • SciView(これがデータビューとグラフビューを兼ね備えている)
    • 実行したオブジェクトリストView

    が現れ、まるで RStudio みたいなView配置になる。RでデータサイエンスをするならRStudio一択だけれども、PyCharmはPythonにおけるデータサイエンスのためのIDEになりえるのではないか?

    ここがスゴい {#ここがスゴい}

    例えば、Jupyter Notebookユーザならば、セルごとに処理を実行することができることに魅力を感じるかもしれない。それはPyCharmでもできる。カーソルで選択して、選択範囲を実行すると、選択した部分がPythonコンソールに送られて実行できるのだ。

    そうして評価した、numpyやpandasオブジェクトはクリックすると、SciVIewに現れるのだ。なので、いちいちJupyter Notebook上で、 head()関数でデータフレームの中身を確認する必要がない。

    少しコードを修正したら、再度範囲を選択して、実行すると式が再評価される。

    That’s REPL駆動開発!!

    何より嬉しいのは、IDEの恩恵を存分に利用してPyhtonのコードがかけることだ。IDEに必要な条件としては、以下のようなものがある。 PyCharmはすべて兼ね備えている。

    • シンタックスハイライト/ インデント
    • 検索・置換
    • タグジャンプ
    • コード補間
    • エラーチェック
    • リファクタリング
    • インタープリタ・デバッカ
    • プロジェクト管理
    • ドキュメント参照

    所感 {#所感}

    ここがスゴイでも書いたけれども、コードを部分実行して、そのデータフレームがすぐに見れるViewがあるところがとても気に入った。

    Jupyter Notebookを今までずっと使っていたけれども、Jupyter Notebookの代わりとなるかもしれない可能性を感じた。とはいえ、EDAをしたり、他人に見やすくコードを公開するには、まだまだJupyter Notebookが必要だろう。それ以外の部分は、PyCharmでいいんじゃないか?

    おわりに {#おわりに}

    一番気になるのは、お値段。Professional Editionは有料で1年間 89ドル = 1万円くらい。

    しかし、日本の代理店?から購入するとちょっと安くなる。

    まずは、試用を1ヶ月してみてから判断してみるのもよいのでは?

     

    追記

    Community Editionでも、選択範囲のみを実行したり、numpyやpandasの中身を見ることができた。なんだ、Professional版いらないかも。