[光-Hikari-のPython]08章-04 モジュール（外部ライブラリのインストール）

#[Python]08章-04 外部ライブラリのインストール
前節では、Pythonをインストールすると自動でついてくる標準ライブラリのインポート方法と使用方法について述べました。
そこでも説明した通り、標準ではインストールされていないライブラリもあり、これを**外部ライブラリ**と言いました。今回はこの外部ライブラリのインストール方法について説明していきたいと思います。

##PyPI（Python Package Index）とpip
外部ライブラリは世界中のエンジニアが開発したライブラリです。それらのライブラリが以下の**PyPI**というリポジトリに登録されています。
[https://pypi.org/](https://pypi.org/)

なお、PyPIは世界中のライブラリの情報が掲載されているため、自分が必要としているライブラリを検索するのは大変です。そこで、ライブラリ（パッケージ）をインストールする際に用いられるのが**pip（パッケージ管理システム）**です。

このpipにより、パッケージをインストールすることができますが、pipにはほかにも以下の機能があります。

- 既にインストール済みのパッケージの一覧管理が可能
- パッケージが別のパッケージに**依存**していたら、その依存パッケージも一緒にインストールできる
- インストールできるパッケージの検索

この中で、**パッケージの依存状況を確認しながらインストール**というのがpipの重要な機能です。
例えば、AIのデータ解析で用いるパッケージに**pandas**というものがあるのですが、これをインストールすると、自動で行列の計算とかをしてくれる**numpy**というパッケージもインストールされます。
このように、あるパッケージをインストールする際に必要なパッケージをインストールしてくれるのがpipの重要な機能となります。

pipというコマンドを利用してライブラリのインストールをします。<font color="#c90">今回は行わないですが、</font>実際にはコマンドを入力することにより、PyCharmで以下の個所から、インストールできます。

PyCharmの**Python Console**近くにある、[Terminal]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/102e3d69-edef-4e66-acf9-b83b468eed8c.png)

以下の個所、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/d20ae84c-b7c4-1209-b002-e0e65ebc57c5.png)
から以下のコマンドを打つことで、**XXXX**というライブラリをインストールできます。

```
(venv) C:\Users\＊＊＊\Desktop\python>pip install XXXX
```


##外部ライブラリのインストール方法
上記では、コマンドによって外部ライブラリをインストールする方法を紹介しました。他にも、PyCharmにおいてインストールする方法がありますので、その方法を説明します。今後はこちらの方法を使用します。実際に**pandas（パンダス）**というデータ解析用のパッケージをインストールしてみます。

[File]→[Settings]を選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/d20dabaa-8dcc-055a-2ee4-8b5df5823991.png)

ここには現在インストールされているパッケージが記載されています。右側にある**「＋」**ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/595ea4db-9943-a276-0c9b-d2948fa7a70f.png)

インストールしたいパッケージ名を検索します。今回は以下の赤枠個所に「pandas」と入力し、検索されるので、それをクリックして、下のボタンの**「Install Package」**をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/c70b6025-69d8-0bd0-b8a3-0d3a091d84f2.png)

インストールが終わると以下の赤枠の表記になるので、そうしたら×閉じをする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/7d2c155d-07e7-352c-1c27-915888e8a422.png)

「Pandas」がインストールされているのを確認する。なお、前述した通り「numpy（ナムパイ）」などのパッケージもインストールされているが、これはPandasと依存している関係上、一緒にインストールされているのを確認できます。
※numpyもAIプログラミングで行われるベクトルや行列の演算で非常によく用いられるパッケージです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/bd42e032-96e2-5fc1-ee26-a61407a5e966.png)

##外部ライブラリのインポートと利用（matplotlibのインストール）
先ほど、pandasの例を用いてインストールを行いました。今度は**matplotlib**のインストールを行ってみましょう。手順は先ほどのを参考にしてみてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/9b342637-a36b-fa0e-2e31-c896c11cae7a.png)

今回使用する外部ライブラリは、この**matplotlib**パッケージを利用します。
matplotlibはAIの分野で用いられる、データをグラフ化・可視化するためのライブラリです。これも先ほどのnumpyやpandas同様に、AIの分野では非常によく用いられます。

実際にプログラムを作成してみましょう。<font color="#00cccc">chap08</font>の中に、<font color="#00cccc">samp08-04-01.py</font>というファイル名でファイルを作成し、以下のコードを書いてください。
今回記載するプログラムは、体重の変化を表したグラフを描いてみます。

```.samp08-04-01.py
import matplotlib.pyplot as plt

data = [79.2, 79.1, 78.7, 79.4, 78.2, 78.5, 78.1, 78.3, 78.0, 77.4, 77.1, 76.9, 76.5, 76.3, 75.2]


plt.plot(data)
plt.title('Change in weight')
plt.show()
```
><font color="#090" bgcolor="black">【実行結果】</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/602679/a62e984e-dbb4-8e94-dfe0-204a420fe3b8.png)

今回は、matplotlibを利用しているため、コンソール画面による出力でなく、グラフ形式で出力されます。

まず、**import**で**matplotlib**というパッケージの中にある、**pyplot**というモジュールをインポートしています。その名前を今回は**plt**として別名を付けています。

リスト形式である体重データ**data**を**plt.plot(data)**により描き、グラフのタイトルを「Change in weight」としています。
最後に**plt.show()**により、グラフを表示します。（show関数がないと、グラフが表示されません。）

なお、matplotlibはもっと細かな関数やモジュールがあるので、調べてみてください。matplotlibの詳細についてAI関連の書籍に記載があるので参照してみましょう。

##最後に
今回は、numpy、pandas、matplotlibをインストールし、その中でmatplotlibの例を利用して、グラフを描いてみました。
このパッケージにもいろいろな関数やモジュールがあり、これらは調べながら作成していきます。以前どこかでお話ししたかもしれませんが、実務で書くプログラムは調べながらやるものです。
今回はmatplotlibというライブラリについても調べていろいろな処理を実行してみましょう。

###[【目次リンク】へ戻る](https://qiita.com/ko0821/items/379e8bd9e6ea01089419)