SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Pythonによるデータ解析入門

本格的なPythonデータ解析環境を手軽に! 「Jupyter Notebook」の導入から可視化まで

Pythonによるデータ解析入門 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

対話型データ解析ツール「Jupyter Notebook」

 対話型データ解析環境を提供するツール「Jupyter Notebook」について紹介します。

Jupyter Notebookとは

 Jupyter Notebookはブラウザで利用可能な対話型の実行環境です。可視化や共有機能の利便性からデータ解析と非常に相性が良いツールです。

Jupyterプロジェクト トップ画面
Jupyterプロジェクト トップ画面

 データ解析の場面では下記のタスクを実行する必要があります。

  1. データ取得
  2. データ加工
  3. 可視化

 初見のデータに対応する場合など、探索的にデータを解析する場面では、特に「データ加工」と「可視化」を頻繁に実行します。Jupyter Notebookは対話型の実行環境で即座に加工結果を可視化して確認できるため、小さなサイクルで加工と可視化を実行することができます。プログラムと文章形式のメモを1つのドキュメント(.ipynb形式のファイル)としてまとめることができます。ブラウザで動作するため、複数人での共有や共同編集にも適しています。

 Jupyter NotebookはもともとPython専用の対話型データ解析ツール「IPython(Interactive Python)」がルーツです。その後、ブラウザから入出力できるIPython Notebookが登場しました。さらにPython以外にもJuliaやRといった他の主な解析関連のプログラミング言語にも対応し、これらの言語の頭文字(Ju+Py+R)を用いてJupyter Notebookという名前になりました。

Jupyter Notebookのアーキテクチャ

 Jupyter Notebookは、独特の挙動に感じられる部分もあります。アーキテクチャを頭に入れておくとこれらの挙動も理解しやすくなります。簡単にですが下記に説明します。

 Jupyter NotebookはカーネルとNotebookの2つのプロセスで構成されています。1つのNotebookに1つのカーネルが対応しています。

 カーネルはコードを実行し、クライアントへ結果を返します。NotebookはUIとPythonコードのカーネルへの送信を行います。

2つのプロセス
2つのプロセス

 なおこの2つのプロセスはTCPベースのプロトコル「WebSocket」で通信しています。WebSocketはモダンなWebブラウザで実装されています。

Jupyter Notebookの基本的な使い方

 Jupyter Notebookの基本的な使い方をいくつかご紹介します。

Jupyter Notebookの起動

 起動はコンソールから下記のコマンドを実行します。

$ jupyter notebook

 これによりカーネルと、ブラウザ上でHome画面が起動します。Home画面ではNotebook(ノートブック)の新規作成や閲覧が可能になっています。Notebookを新規作成する場合は、作成したいフォルダ階層で、「New」ボタン ⇒「Python3」を選択し、Notebookを作成します。

新規作成
新規作成

 Jupyter NotebookではPythonなどプログラムをセルと呼ばれるスペース(四角で囲われた部分)に記述します。

ノートブックとセル
ノートブックとセル

 プログラムだけでなく、メモなどもすべてこのセル単位で管理されます。セルは通常複数になります。これら複数のセルを1つにまとめたものがNotebookになります。

終了

 Notebookの終了はメニューの「File」>「Close and Halt」を選択します。

新規作成
新規作成

 カーネルはコンソールで「Ctrl + C」で終了できます。Notebookを終了してもカーネルは終了しませんのでご注意ください。

プログラムの実行

 Jupyter Notebookセルに Python のコードを入力します。実行はプログラム入力後にShift + Enter(Ctrl + Enter)でセル内のプログラムを実行されます。

[リスト1]Pythonプログラム実行
a = "codezin "
b = "データ解析 "
print(a + b)

 上記の実行結果は「codezin データ解析」と表示されます。

メモの記述

 各種テキストを Markdown 形式でメモとして残すことが可能です。下記のようにメニューで指定するとそのセルがMarkdown記述用のセルになります。

markdown記述の選択
markdown記述の選択
[リスト2]Markdownの例
# 見出し1

**太字**
* リスト
* リスト
* リスト

 上記の記述を実行すると下記の表示になります。

markdown記述の例
markdown記述の例

数式の記述

 数値計算分野で数式表現ではおなじみのLatex形式で数式を記述することができます。下記のように'$$'で囲みます。セルはMarkdownにしておきます。

[リスト3]数式記述の例
$$
\begin{align}
\sum_{k=1}^{\infty} \frac{1}{k^2} = \frac{\pi^2}{6}
\end{align}
$$

 上記の記述の場合は下記の数式が表示されます。

Latex形式の記述
Latex形式の記述

ファイル共有(エクスポート)

 JupyterのNotebookは「.ipynb」形式のファイルとして保存され、他のPCでも開くことができます。またPDFなどの形式でエクスポートして共有することも可能です。

次のページ
データ解析でよく使われるPythonライブラリ

修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Pythonによるデータ解析入門連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 西 潤史郎(ニシ ジュンシロウ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook<個人紹介>フリーランスとしてデータ解析エンジニアとして主にビッグデータ関連の仕事をしています。TableauなどBIやビッグデータ処理などビジネスデータ解析環境の構築・運用、また解析系のアプリケーション開発やGoogleアナリティクス活用支援などを行っています。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/10917 2018/07/05 11:39

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング