Pythonで学び直す数学【統計編】～統計指標の求め方／度数分布表を描画してみよう

Pythonのコードで、CSVやExcelのデータを読み込んだり、統計指標を使ったりする機会は、普段Pythonを使っている方であれば使い慣れている方もいらっしゃると思いますが、実際には少し興味はあるけれど、どうPythonで書いてみればよいのかわからないという方のほうが多いのではないでしょうか。ここではPythonのライブラリの基本的な書き方を含め、読み込んだCSVデータの内容を、統計的に処理・表現するという形の演習をしていきたいと思います。

<b>「数学的な問題をPythonで簡単なスクリプトを作って動作を確認する」こと通して、Pythonに触れる機会をつくっていきたいと考えています。</b>Pythonに慣れるという点でも手を動かして考える機会にして頂ければ幸いです。

今回は、Pythonで学び直す数学【統計編】の確認をしていきたいと思います。
<a href="http://semi3del.xsrv.jp/dis/PythonMathStatistics.zip" target="_blank">演習問題のダウンロードはこちらから</a>


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/8c1ef780-644d-e0f8-c7ff-cc8bfa436420.png)
まず、読み込んだデータを統計情報として利用するためのPythonライブラリについてみていきましょう。
ここでは<b>「Numpy」と「Pandas」</b>を紹介します。

<h3>Numpyとは？</h3>

<b>Numpyとは、科学計算のための基本的なパッケージで、アレイを作成するのに便利なライブラリ</b>のこと。

Numpyを利用するには、以下のようにインポートを行います。Asキーワードを使用してnpで呼び出せるようにします。

In
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/49a94716-6ce0-62ae-81e7-6aac0d328f50.png)
▷使用例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/0864f0dc-f352-e5b6-5dcd-040210629406.png)

NumPyを使用することで、アレイや乱数生成など様々なことができるようになります。<b>通常のPythonで処理を行うよりもずっと早く処理できるので、大量のデータを扱う（機械学習など）場合にNumPyが利用されます。</b>

<h3>Pandasとは？</h3>

Pandasとは、<b>Pythonでデータ処理をするために作られた高機能なライブラリ</b>のこと。代表的な使い方として<b>SeriesやDataFrameを使ったデータの処理方法</b>があります。

Pandasを利用するには、以下のようにインポートを行います。Asキーワードを使用してpdで呼び出せるようにします。
In
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/7b12f4e9-2173-c09e-9e4a-e8ee68fd832c.png)
▷使用例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/134c3143-b3be-1f1a-d81d-9e5667033ae7.png)

csvやExcelのデータを読み込んだり、列や行を削除したり、フィルターをかけて抽出をしたり、Excelやデータベース言語のSQLでできることがPandasの機能にあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/f17f3389-c7fe-21b8-8e31-fc1dda93822b.png)

次に、統計として扱うCSVデータを読み込む方法について、見ていきましょう。
以下のようなCSVデータを読み込む例を考えてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/e053bef6-9efa-08cb-42f4-22e8a47d68b5.png)

In
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/aae8a98c-f7e8-a0eb-803f-c75f21695696.png)
Out
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/407025e9-4524-dea5-fd82-aa5c1c11040c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/0587e3bd-f4d4-d865-d0e1-a04110f1a2f6.png)

次に、<b>度数分布表を描画する方法</b>について、見ていきましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/3418cb64-766f-c4d6-0517-cd0752084398.png)

In
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/e0afb10b-330a-226e-6b3b-87a4b4809d75.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/ed660008-c50f-7d56-17b3-8ff4a313f355.png)

ここで、添付演習問題の<b>「統計指標」シートの問題</b>を解いてみましょう。
<b>Numpyを使った平均値と中央値の求め方</b>を調べて、下線部に入る式を埋めてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/a16c52c5-047b-2ba9-4f76-46cca00a8659.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/7fa3b2ca-7dd9-6222-ec11-300fa06c96f4.png)

ここで、添付演習問題の<b>「分散と標準偏差」シートの問題</b>を解いてみましょう。
<b>Numpyを使った分散と標準偏差の求め方</b>を調べて、下線部に入る式を埋めてみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/cb0faefd-0db9-48bc-f2ea-65796c470370.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/57e2ee87-f157-d441-b518-f492ca53ee14.png)
ここで、添付演習問題の<b>「偏差値算出」シートの問題</b>を解いてみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2355311/e0aa1970-4340-1dc6-7993-02b81dfca847.png)
<hr>
以前学校で学んできた内容をもとにPythonでスクリプトを実行しながら確認できるのは面白いなと感じる方もいらっしゃるかもしれません。<b>自分にできる範囲のものから少しずつPythonにも挑戦してみようかな</b>と思っていただければ幸いです。

以上となります。


参考文献：
・谷尻かおり『文系プログラマーのためのPythonで学び直す高校数学』日経BP社（2021年）