実践 Python データサイエンス受講 (No.1)
概要
【世界で5万人が受講】実践 Python データサイエンス | Udemy
をぼちぼち受講していっています。
序盤のあたりまで、受講したので内容についてまとめておきます。
データサイエンス周りの基礎知識をつけることがゴールかなと思っています。
内容
はじめに
基本的にはJupyter Notebook上にサンプルコードを書いて実装しています。
data-kaggle/learn at master · midorigreen/data-kaggle
Jupyter Notebook
(記載するまでもないですが)
- ブラウザ上で、プログラムを実行できるツール
- プログラムだけでなく、グラフの可視化やMarkdownの記載等を利用して、実行した処理を記録
- Machine Learningにてデファクトで利用されているツール
- IPython(Pythonのinteractive shell)をベースに、様々な言語(40程度)に対応
- ipynb拡張子で保存され、GitHub上で見ることも可能
numpy
Pythonの行列計算用のライブラリで、作成・計算をはじめ様々な機能を持っています。
import
import numpy as np
行列の作成
# array([0, 1, 2, 3, 4]) arr = np.array([0, 1, 2, 3, 4]) arr = np.arange(5) # ランダム arr = np.randam.randn(5) # array([[0, 1, 2, 3, 4]) # [0, 1, 2, 3, 4]]) arr2 = np.array([0, 1, 2, 3, 4],[0, 1, 2, 3, 4]) # array([[0, 1, 2], # [3, 4, 5], # [6, 7, 8]]) arr3 = np.arange(9).reshape((3, 3))
行列の操作
# (行, 列) arr.shape # コピー arr_copy = arr.copy() # 転置 arr3.T # 行列入れ替え arr3.swapaxes((0, 1)) # 条件式 (条件, trueのとき, falseのとき) np.where(a > 0, 0, arr)
行列の計算
# 平方根 np.sqrt(arr3) # 掛け算 arr1 * arr2 # 内積 np.dot(arr1, arr2) # 平均 arr.mean() # 標準偏差 arr.std() # 分散 arr.var() # ソート arr.sort() # 逆順 arr[::-1] # 重複 np.unique(arr) # contains np.in1d([0, 10, 20], arr)
行列の外部処理
# 保存 np.save('my_arr', arr) # 読み込み np.load('my_arr.npy') # zip保存 np.savez('my_arr2', x=arr, y=arr2) zarr = np.load('my_arr2') # 添字アクセス zarr['x'] zarr['y']
matplotlib
- Pythonの2Dのプロットライブラリ
- グラフを描画することができる
Import
import matplotlib.pyplot as plt
pandas
- データ構造と演算を提供するPythonのライブラリ
import
import pandas as pd
Series
ラベル付きの配列(1次元)
# 生成 se = Series([0, 1, 2, 3]) # ラベル付き se1 = Series([0, 1, 2, 3], index=['A', 'B', 'C', 'D']) se1['A'] # 辞書型変換 se1.to_dict()
DataFrame
ラベル付きの行列(2次元)
# 生成 # Clipboardから(Wikipedia等より表形式をコピー) df = pd.read_clipboard() df2 = {'City': ['LA', 'SF', 'NYC'], 'Population':[30000, 20000, 8000]}
環境
# Anaconda利用 % python -V Python 3.5.2 :: Anaconda 4.1.1 (x86_64)
所感
まずは序盤として、Jupyterの利用方法から、numpyの基本までを記載しました。感想としては、行列の扱いが簡単にできて、Pythonが利用される理由の一端に触れた気がしました。pandasについては、もう少しあるので編集する形にしようかと思います。