Udemyの「実践 Python データサイエンス」を受けてみた

このブログは[jupyter notebook Advent Calendar 2016](http://qiita.com/advent-calendar/2016/jupyter)の3日目のエントリーです。

[Udemy](https://www.udemy.com)というオンライン学習サービスがあり、[「実践 Python データサイエンス」](https://www.udemy.com/python-jp/)が2,300円だったので、ぽっちってみました。17.5時間コースで、[「Pythonスタートブック」](https://www.amazon.co.jp/Python/dp/4774142298/)の著者である辻真吾さんが日本語で解説してくれていて、とても分りやすいコースです。まだ全てのセクションを聞いていないのですが、こちらのコースについて紹介します。

このコースでは基本的にJupyter Notebookを使ってほぼ全てのセクションを説明しているので、このコースで紹介しているJupyter Notebookの機能？について交ながら紹介します。

前半は、Pythonのデータ解析用ライブラリの利用の仕方を説明しながら進める形になっています。その後、データ解析、可視化について説明し、後半では実際のデータを利用して、より実践的なデータ解析について説明されています。

---

## Anaconda
[Continuum Analytics社](https://www.continuum.io/)が提供しているデータ解析に必要なライブラリのパッケージです。このパッケージにJupyter Notebookも入っています。Anacondaをインストールすれば、pipというPythonのパッケージ管理ソフトがはいっているので、これをつかって必要なライブラリをインストールすることもできます。私のような超初心者が、Pythonのデータ解析環境を整えるには、まずこのAnacondaをいれるといいかと思います。

<img width="1205" alt=" 2016-12-03 21.58.47.png" src="https://qiita-image-store.s3.amazonaws.com/0/42406/c65cac1d-e47e-75ab-cd7f-e6a97bb4a113.png">


## Jupyter の使い方
Anacondaをインストールした後、作業用ディレクトリで下記のように起動するだけでブラウザが立ち上がります。

```
$ ipython notebook
```
<img width="989" alt=" 2016-12-03 22.40.56.png" src="https://qiita-image-store.s3.amazonaws.com/0/42406/13f6ceb2-3e1d-51fb-ad43-9f039ad97245.png">

+ NewでPythonをクリックすると新しいNotebookが作成されます
+ コードの実行
 + Ctrl + Enterで、コードの実行
 + Shift + Enterで、コードを実行して新しいセルを作成
+ Markdownでコメントも書くことができます
+ Jupyterを終了するときは、TerminalでCTRL + C
+ Rename Notebookでノート名を変更。ipynbという拡張しで保存されます。
+ ipynb拡張子のファイルをクリックすると保存したNotebookをオープンすることができます
+ !lsなどで、Terminalでのコマンドを実行できます
+ Jupyterでは、Markdownで、下記のようにhtmlを書いて実行すれば、htmlのコードを実行することができて、同じディレクトリにファイルがあれば、画像を表示してNotebookとして保存することができます

```
<img src="lec28.png"> 
```

+ 下記のように書いておくことで、Notebookの中で画像を表示することができます

```
%matplotlib inline
```
<img width="626" alt=" 2016-12-03 21.56.47.png" src="https://qiita-image-store.s3.amazonaws.com/0/42406/3dbb7ca3-1536-4db1-5b8b-aefb9d7d3b82.png">


## データ解析についての説明
こちらのコースのセクション3以降では、Jupyterを利用して、データサイエンスの基本について説明されます。ライブラリを紹介するような形で流れていきます。

+ NumPy
 + NumPyのアレイは、データ解析の中心的な役割

+ Pandas
 + Pythonでデータ解析をする時に非常に良く使うデータライブラリ
    - Seriesは非常に良く使うライブラリ
    - DataFrameは非常に良く使うデータ型

このように、クリップボードからデータを読み込むこともできるんですね。

```
from pandas import Series, DataFrame
import pandas as pd
# クリップボードに読み込みたいデータを貼り付けておく
nfl_frame = pd.read_clipboard()
nfl_frame
```

<img width="619" alt=" 2016-12-03 21.42.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/42406/e76393c1-790e-feed-5226-7137da2feda7.png">


## データ解析の基礎
+ テキストデータ、JSON、HTML、Excelからデータを読み込む方法の紹介
+ データのマージなどを学習します。
+ データをまとめる方法などを学習します。


## データの可視化
 + Seabornの利用  
 Seabornは非常にすぐれたデータの可視化用ライブラリで、色を簡単に変えることができるという特徴もあります。ヒストグラム、カーネル密度推定（簡単に言うとなめらかなヒストグラム）ボックスプロット（箱ひげ図）、ヴァイオリンプロット、回帰直線などを表示させることができます。


## 実践的なデータ解析
+ Titanic号のデータを解析  
[Kaggle](https://www.kaggle.com)にアカウントをつくって、ログインすれば、様々なデータをダウンロードできます。ここでは[Titanic号の生存者属性データ](https://www.kaggle.com/c/titanic/data)を使って、データ解析を行います。

> Kaggleは企業や研究者がデータを投稿し、世界中の統計家やデータ分析家がその最適モデルを競い合う、予測モデリング及び分析手法関連プラットフォーム及びその運営会社である。
参照: [https://ja.wikipedia.org/wiki/Kaggle](https://ja.wikipedia.org/wiki/Kaggle)

<img width="1064" alt=" 2016-12-03 22.00.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/42406/c2273ee2-5411-e857-5eea-cb1cc787f3a2.png">


+ 株式市場のデータ解析  
Pandasはもともと金融情報のデータ解析を目的につくられたライブラリなので、株価のデータ解析には非常に向いてます。PandasのRemote Data Accessである[DataReader](http://pandas.pydata.org/pandas-docs/stable/remote_data.html)を利用すれば、簡単に株式データをダウンロードし、データ解析を行います。

```
from pandas.io.data import DataReader
from datetime import datetime
tech_list = ['AAPL','GOOG','MSFT','AMZN']
end = datetime.now()
start = datetime(end.year - 1,end.month,end.day)
for stock in tech_list:   
    globals()[stock] = DataReader(stock,'yahoo',start,end)
AAPL.describe()
```

+ 選挙のデータ解析  
データは、[HuffPost Pollster](http://elections.huffingtonpost.com/pollster)から持ってきます。米国の選挙のデータになります。ここでは、Webからデータととってくるのに便利な、[requests](http://docs.python-requests.org/en/latest/)というモジュールを使います。また、CSV形式のテキストデータをファイルのように扱うために、[StringIO](https://pymotw.com/2/StringIO/)を利用し、データ解析を行います。

---
以上、Jupyter Notebookに関する内容とは少し違った形になりましたが何かの参考になればと思います。[「実践 Python データサイエンス」](https://www.udemy.com/python-jp/)は、2,300円以上の価値があると思います。私のような超初心者にはとっても分りやすい内容になっていますので、是非受講してみるといいと思います。