pyhaya’s diary

機械学習系の記事をメインで書きます

AtomとVSCodeのJupyter Notebook環境を比較した

仕事でよくJupyter Notebookを使ってのデータ解析を行うのですが、最近いちいちブラウザでNotebookを起動するのが面倒になってきました。そこでエディタを使ってJupyter Notebookを使おうと思って色々調べていたら、AtomVSCodeを使うのがどうやらよさそうだということがわかりました。

そこで、この記事では、両方の環境を使ってみてどちらがより使いやすいか比較してみたいと思います。

開発環境

環境構築

PythonとJupyter Notebookを使いたい場合には、Anacondaで入れてしまうのが一番簡単です(特にWindowsでは)。
weblabo.oscasierra.net

エディタをインストールする

AtomVSCodeのインストール方法は下のリンクからダウンロード、インストールするだけです。
atom.io
code.visualstudio.com

Python環境を整える

次に各エディタにPythonの環境を整えていきます。
Atomの場合:
https://hajipro.com/python/atom-python


VSCodeの場合:
docs.microsoft.com


手順はAtomのほうが圧倒的に楽です。

Jupyter Notebookを使う環境を整えていく

Atomの場合

AtomではFile -> Settingsを押すと、
f:id:pyhaya:20181202173420p:plain
という画面が出てきます。左側の列にCoreやらEditorやらいろいろ並んでいますが、一番下のInstallを選択し出てくる検索欄に「Hydrogen」と入れて検索します。後は出てきたHydrogenをインストールするだけです。

VSCodeの場合

こちらもAtomと似たような感じです。
f:id:pyhaya:20181202173854p:plain
VSCodeの場合には常に画面の一番左側にアイコンが5つ並んでいます。一番下の四角いやつがパッケージのインストールなどに使うものです。
このアイコンを押して、「Jupyter」と検索し、一番上に出てくるJupyterパッケージをインストールします。

使ってみる

いよいよ使ってみます。どちらのほうが使い勝手が良いでしょうか?

普通に使ってみる

まずは普通に、算術計算に使ってみます。次のコードを実行してみます。

x = 1
y = 2
x + y

両方ともコードブロックはブロックの先頭に#%%を入れることで表現できます。

Atom

f:id:pyhaya:20181202175025p:plain
Atomの場合はこんな感じ。ブロックの実行はAlt-Shift-Enterでできます。Shift-Enterだと一行ずつ実行になります。

VSCode

VSCodeの場合はこんな感じ。Shift-Enterで実行できます。Atomとは異なり画面分割されて出力されます。表示はこちらのほうがJupyter Notebookに近い印象です。
f:id:pyhaya:20181202175301p:plain

グラフを書く

下のコードを実行してみます。

import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 10, 500)
y = np.sin(x)

plt.figure()
plt.plot(x, y)
plt.show()
Atom

f:id:pyhaya:20181202175919p:plain
きれいに出力されました。

VSCode

f:id:pyhaya:20181202180144p:plain

こちらもきれいに、、、とは言ってません。軸のラベルが背景の黒につぶされてしまっています。これをどうにかするには

plt.figure(facecolor='white')

と色を指定してやる必要があります。このめんどくささがあるので、描画に関してはAtomに軍配が上がりそうです。

CSVファイルを扱う

Atom

f:id:pyhaya:20181202180934p:plain
かなりシンプルな感じで出力されます。

VSCode

f:id:pyhaya:20181202181035p:plain
わかりにくいですが、行ごとに色が若干違っています。また、Atomとは異なり表にカーソルを持っていくと行がハイライトされます。この点はAtomより優れています。

まとめ

AtomVSCodeもよく使うようなJupyter Notebookの機能はちゃんと備わっているという感じです。ただ、細かいところで両者とも使いにくいところがありました。上には書きませんでしたが、VSCodeではos.chdir()をしてもセルが変わるとルートディレクトリに戻されるという謎の現象もありました。

どの機能を重要視するかによってどちらを選ぶかは変わりそうですが、私の場合は、グラフの色調整は結構気合い入れてやることが多いので、いちいち色指定しなくてよいAtomかなって感じです。