機械学習入門に必要なPythonのライブラリを紹介                                                                                                                                                                     

# 機械学習を入門し始めたが....
機械学習に必要な科学技術向けPythonライブラリが多いのでそれをまとめました。
## 　環境
MacOS
機械学習系の開発に関しては、Jupyter　NoteBookがおすすめです。
Pandasで表を出したり、Matplotlibでグラフを出したりするのが楽です。
[Jupyterのショートカット](https://qiita.com/angelapy/items/998e99b2d0dc991c99f7)
を参考にしていただきたいのですが、「編集モード」と「コマンドモード」があって、Vimのようですね！

### Jupter Notebookのインストール
pipからインストール
Python3なら

```python
python3 -m pip install --upgrade pip
python3 -m pip install jupyter
```
Python2なら

```
python -m pip install --upgrade pip
python -m pip install jupyter
```
そして
`$jupyter notebook`で、Jupyter Notebook　のサーバーを立ててください。
そして、http://localhost:8888/　にアクセスしましょう。
<img width="1440" alt="スクリーンショット 2018-03-07 22.55.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/188304/29f1b3fb-522f-0be9-67f8-77811e63854d.png">
こんな画面になります。
<img width="299" alt="スクリーンショット 2018-03-07 22.56.18.png" src="https://qiita-image-store.s3.amazonaws.com/0/188304/d742ee7a-7791-2a90-21c3-698fbd52585a.png">
Newのボタンを押してPython2を選択してください。
<img width="1202" alt="スクリーンショット 2018-03-07 22.58.10.png" src="https://qiita-image-store.s3.amazonaws.com/0/188304/fe997b08-1ab9-2d8a-b73f-f9ece1abfad4.png">
このような画面になります。
<img width="1145" alt="スクリーンショット 2018-03-07 22.58.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/188304/c8104b1a-932d-57b8-102b-c2bf790d319b.png">
この一つの塊をセルといい、プログラムを書いていきます。
## 機械学習入門に必要なPythonのライブラリ
### Numpy
インストール
`$sudo pip install numpy`
多次元配列を作ったり、それを操作したりするすごいライブラリ。
Numpy配列を作ってみる！！

```python
import numpy as np
x = np.array([[1,2,3],[4,5,6]])
print("x:\n{}".format(x))
```
<img width="1121" alt="スクリーンショット 2018-03-07 23.13.06.png" src="https://qiita-image-store.s3.amazonaws.com/0/188304/eb19c0a2-1054-2482-1740-6b203749be1d.png">

### SciPy
Pythonで科学技術計算を行うための関数を集めたもの。
SciPyは疎行列を作るのによく用いられるそうです。
配列の中身がほぼ0である疎行列は、機械学習でよく使われます。
その、疎行列を作ってみましょう。

```python
from scipy import sparse
eye = np.eye(4)
print("Numpy array :\n{}".format(eye))
```
<img width="1115" alt="スクリーンショット 2018-03-08 0.07.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/188304/d504e49b-80ab-650e-a1a6-94f586e61d88.png">

### Matplotlib
グラフ描画ライブラリ。データを折れ線グラフ、ヒストグラムなど様々な形のグラフで表現できる。
サイン関数のグラフを描写してみる！！

```python
%matplotlib inline
import  matplotlib.pyplot as plt
x = np.linspace(-10,10,100)
y = np.sin(x)
plt.plot(x,y,marker="x")
```
<img width="1072" alt="スクリーンショット 2018-03-08 0.10.24.png" src="https://qiita-image-store.s3.amazonaws.com/0/188304/d69a0487-813c-b00a-64a4-af55618cf019.png">

### Pandas
データを変換したり解析したりするライブラリ。テーブル（表）のようなデータ構造を中心に構成されている。
SQLのような問い合わせを行ったりできる。
テーブルを出力してみよう

```python
import pandas as pd
from IPython.display import display
data = {"Name":["a","b","c","d"],
        "location":["s","sa","ssa","sssa"],
        "age":[11,33,22,44]
       }
data_pandas = pd.DataFrame(data)
display(data_pandas)
```
<img width="1114" alt="スクリーンショット 2018-03-08 0.18.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/188304/99daca17-1df6-22b1-04e8-64c478b3cf04.png">


この内容はこのファイルにまとめられています。
https://github.com/amueller/introduction_to_ml_with_python/blob/master/01-introduction.ipynb



ここでは紹介した程度ですが、一通り、Pythonのライブラリ　を入門したので、やっと機械学習の勉強ができます。
頑張るぞぉぉ