Pythonを使用したデータ分析 -事前準備-

SDNやクラウド、仮想化の普及によってソフトウェア化されたインフラが増えてきました。ここ数年でインフラエンジニアであっても、ソースコードの読み書きが出来なければいけない時代になってきたと感じています。ネットワークスキルは知っていて当たり前、さらにプログラミングのスキルを持っているインフラエンジニアが求められてきています。個人的にもDockerやAnsibleなどのDevOpsツールを触る機会が増えてきたので、これを機にシステムエンジニア向けの記事を書いていこうと思います。使用する言語は様々ありますが、OpenstackやAnsibleで使われているPythonについて解説していきたいと思います。

Jupyter(IPython Notebook)とは

Pythonの開発ツールには様々ありますが、今回はJupyter(iPython Notebook)を使って見ます。

Jupyterはインタラクティブ(対話的)なコード実行のための環境で、特にデータ分析に非常に適しています。

また任意に分けたコードブロックごとに実行し、結果を都度インラインで表示出来るほか、グラフのインライン表示やマークダウン方式の文章記載、数式の記述なども可能です。単純にPythonスクリプトを書くだけであれば、他のツールでも良いと思いますが、簡単にトライアルアンドエラーをしながら実行することができるので、私のようなPython初心者でも扱いやすいのと、最終的にはデータ分析や機械学習にも手を広げていきたいのでJupyterを選択しています。

Jupyterのインストール

そもそもPythonが入っていることが前提ですので、インストールされているかどうかを確認します。

$ python --version
Python 2.7.9

pipでインストールする場合

Jupyterのインストールはpipで行うのが一番簡単です。

$ pip install jupyter
Collecting jupyter
  Downloading jupyter-1.0.0-py2.py3-none-any.whl
Collecting notebook (from jupyter)
  Downloading notebook-4.2.1-py2.py3-none-any.whl (6.7MB)
 <省略>

Anacondaでインストールする場合

Anacondaとはは、Continuum Analytics社によって提供されているPythonパッケージです。Python本体に加えて、科学技術や数学、エンジニアリング、データ分析などのよく利用される Pythonパッケージを一括でインストールしてくれます。
Python開発者の間では有名なパッケージです。

Download Anaconda now! | Continuumから環境に合ったインストーラーをダウンロードします。

Download Anaconda now! | Continuum_thcue

ダウンロードしたパッケージを使ってインストールすれば、Jupyterもインストールされます。

Dcokerを利用する場合

ローカルの環境を汚したくない場合は、Dockerを使ってコンテナ上でJupyterを動作させる方法がおすすめです。公開されているDockerコンテナを検索してみると結構ありました。

$ docker search jupyter
NAME                                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
jupyter/jupyterhub                    JupyterHub images have moved to jupyterhub...   65                   [OK]
jupyter/notebook                      DEPRECATED. Use one of the `-notebook` doc...   63                   [OK]
xblaster/tensorflow-jupyter           Dockerized Jupyter with tensorflow              24                   [OK]
jupyterhub/jupyterhub                 JupyterHub: multi-user Jupyter notebook se...   14                   [OK]
ermaker/keras-jupyter                 Keras and Jupyter                               9                    [OK]
<省略>

データ分析等を利用しないのであれば、「jupyter/notebook」で良いと思いますが、NumPyやpandasパッケージを利用する場合は「jupyter/datascience-notebook」か「jupyter/all-spark-notebook」が良いと思います。

$ docker pull jupyter/all-spark-notebook
$ docker images jupyter/all-spark-notebook
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
jupyter/all-spark-notebook   latest              d819f3a8e5e8        4 days ago          5.044 GB

イメージサイズが5GBとかなり大きいですね。8888番ポートを使ってコンテナを起動します。

$ docker run -d -p 8888:8888 jupyter/all-spark-notebook
Unable to find image 'jupyter/all-spark-notebook:latest' locally
latest: Pulling from jupyter/all-spark-notebook
8b87079b7a06: Pull complete
a3ed95caeb02: Pull complete
b7837d46e7ab: Pull complete
662ca9fe7b05: Pull complete
97953f27b77a: Pull complete
Status: Downloaded newer image for jupyter/all-spark-notebook:latest

起動後にブラウザで「http://localhost:8888」にアクセスします。

Jupyterの起動

Jupyterはブラウザ上で動作します。起動方法はターミナルから「jupyter」コマンドを実行します。

$ jupyter notebook

コマンドを実行するとブラウザ上に以下の画面が自動で開きます。

Home_oxpbz

新規にノートブックを作成したい場合は、右上の「New」ボタン → 「Python2(環境によってはPython3)」を選択し、ノートブックを作成します。

Home_633dp

Jupyterはセルと呼ばれるスペースにPythonのコードを入力し実行することができます。実行や編集のショートカットキーには以下のようなものがあります。

  • Ctrl + Enter: セル内のプログラムを実行
  • Shift + Enter: 下にセルを追加
  • セルをダブルクリック: セルを再度編集可能にする

試しにお約束の「Hello World」をやってみます。

Untitled1_a9foi

以下のようにPandasパッケージを使えばテーブル出力も可能です。

Untitled_gnr3w

Matplotlibパッケージを使えば、グラフもインラインで表示可能です。

Untitled_7lltw

利用出来るショートカットキーを調べるには、メニューにあるキーボードアイコンをクリックすると確認できます。

Untitled_q3vxr

Untitled_0lpl5

おすすめ記事

関連記事

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス:

検索

特集

初心者のためのciscoルータの管理

目指せPMP

▼ ネットワークエンジニアにおすすめのサイトはこちら ▼


著書

図解入門 よくわかる最新ネットワーク技術の基本と仕組み

初心者のためのCiscoルータ運用ガイド: 最速でCiscoルータを理解するための解説書

目指せPMP PMBOK第5版対応: 最速でPMPに合格するための解説書

見てわかるTCP/IP

おすすめ記事

カテゴリ

ブログ最新記事