読者です 読者をやめる 読者になる 読者になる

太陽がまぶしかったから

C'etait a cause du soleil.

Mac & Python3でデータ分析環境の構築準備

プログラミング プログラミング-データ分析

Ein schnelles Apfelmännchen

Python3環境の準備

 データ解析基盤Mac で Python3 環境での開発を行う準備を環境を準備した際の備忘録。Anacondaなどを利用すれば一発で入るけど、サーバー環境に移行する場合にコンフリクトするのが面倒なのと自身の理解のためにいちからやってみる。まずは『パッケージ管理システム Homebrew - Qiita』を見ながら Homebrew をインストール。続いて Python3のインストール。

$ brew install python3
$ pip3 install --upgrade setuptools
$ pip3 install --upgrade pip
$ brew linkapps

 .bash_profileに以下の記述を行って、デフォルトで利用するPythonを3系にする。

alias python="/usr/local/bin/python3"
alias pip="/usr/local/bin/pip3"

 シェル設定を有効可して、PythonとPipのバージョンを確認。

$ . .bash_profile
$ python --version
Python 3.6.0
$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

仮想環境を作成して必要なパッケージをインストール

 ライブラリを独立管理するための仮想環境を作成。Python2系の頃はサードパーティツールの virtualenv を使うイメージがあったけれど、Python3 では組み込みの venv を使うのがよいらしい。

$ python -m venv ./data_analysis
$ cd data_analysis
$ .  bin/activate
(data_analysis) $ 

 数値計算ライブラリの numpy、データ解析基盤の pandas をインストール。

(data_analysis) $ pip install numpy
(data_analysis) $ pip install pandas

NumpyとPandasで正規分布乱数表を生成して簡易分析

 いよいよ pythonでプログラミング。NumpyとPandasで正規分布乱数表を生成して簡易分析させてみる。

import pandas as pd
import numpy as np

# 10行5列の正規分布乱数を生成
r = np.random.randn(10,5)

# カラムにA〜Eを割り付けてデータフレームを作成
df = pd.DataFrame(r, columns=list("ABCDE"))

# 乱数表を表示
print(df)

# 分析概要を表示
print(df.describe())

 これだけで、正規分布の乱数を生成して要素数、平均、標準偏差、最小、25パーセンタイル、中央値、75パーセンタイル、最大値を出力させられる。

(data_analysis) $ python test.py 
          A         B         C         D         E
0 -0.475664 -0.279614  0.769798 -0.842362 -0.990630
1 -1.515329  0.359877 -1.012964 -0.902889 -0.422315
2 -1.005066 -0.744064 -1.739727  0.370189 -0.788447
3  1.084547 -0.669911  0.869942 -0.593359 -0.729903
4 -0.994824  0.976057  2.317380  2.101970 -0.527500
5  1.189061 -0.938198  0.397261  0.396541 -0.773025
6  1.355600 -0.279438  2.599107  0.020310 -0.942765
7  0.109022 -0.436186 -0.796743  0.610479  0.330171
8  0.889160 -0.721003 -0.592103 -0.919960  0.508450
9 -0.488005 -0.230929  1.244978  2.349501 -0.175396
               A          B          C          D          E
count  10.000000  10.000000  10.000000  10.000000  10.000000
mean    0.014850  -0.296341   0.405693   0.259042  -0.451136
std     1.053487   0.577961   1.436626   1.185935   0.520875
min    -1.515329  -0.938198  -1.739727  -0.919960  -0.990630
25%    -0.868119  -0.708230  -0.745583  -0.780111  -0.784592
50%    -0.183321  -0.357900   0.583529   0.195250  -0.628702
75%     1.035700  -0.243057   1.151219   0.556995  -0.237126
max     1.355600   0.976057   2.599107   2.349501   0.508450

 サンプル数が少ないとばらつきが大きいので1000行づつ生成させて表示。

import pandas as pd
import numpy as np

r = np.random.randn(1000,5)
df = pd.DataFrame(r, columns=list("ABCDE"))

print(df.describe())

 実行。標準偏差は限りなく1に近づき。正規分布にしたがったパーセンタイルになる。

(data_analysis) $ python test.py 
                 A            B            C            D            E
count  1000.000000  1000.000000  1000.000000  1000.000000  1000.000000
mean      0.033938    -0.023520     0.030100    -0.017647    -0.006550
std       0.990832     0.972516     0.994633     0.997848     0.987670
min      -3.689006    -3.528158    -2.744848    -3.627054    -3.991040
25%      -0.617739    -0.700103    -0.640078    -0.633762    -0.632677
50%      -0.013711    -0.056635     0.043262    -0.020641    -0.011819
75%       0.647932     0.617857     0.714928     0.599148     0.679650
max       3.535475     3.768816     2.684675     2.929153     3.028185

 最低限の環境構築はここまで。

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理