Ipython, Numpy, pandas, matplotlib, SciPy
Ipython
IPythonは、Pythonの対話型インタプリタを強力に拡張したもの。
- 補完機能が充実している。tabキーでの候補を活用
- イントロスペクション。変数名、オブジェクト名、組み込みモジュール、自作のクラスなどに、?をつけるとそのオブジェクトの情報が表示さらる。??でさらに詳細な情報を表示。
- マジックコマンド—>デバッグなどの開発補助ツール群の提供、及びIPython自体の提供が目的
- キーボードショートカット(p.59)
- ipython -pylabで起動するとMatplotlib機能付きで起動。
- コマンド履歴の利用
- Ctrl -Pあるいは↑キーで、Ctrl -Nあるいは↓キーで、入力履歴を探せる。
- iX(Xは行番号)でその行の入力にアクセス、Xで出力を見直せる。
- セッション全体をロギングできる。logging は、あるソフトウェアが実行されているときに起こったイベントを追跡するための手段。
- OSとの統合
- システムシェルのコマンドを使うのは,頭に!をつけて実行するだけ。
- ディレクトリブックマーク機能(p.69)
- ソフトウェア開発ツール
- 対話的デバッガ—例外の発生した時に%debugコマンドを入力する。(p.70)使って慣れるしかない。
- 処理時間の計測–%timeit使っとけば良さそう
- プロファイリング
- cProfileモジュールを用いて任意のコードブロックをcProfile指定で起動し、その結果を関数ごとの消費時間のまとめとして受け取る。
- IPythonでのプロファイリングは%prun(任意の命令),%run -p(完全なコード)を用いる。(p.76)
- IPython HTMLノートブック
- $ ipython notebook –pylab=inline で起動しない
NumPy 基本編
NumPy(Numerical Python)とは科学技術計算やデータ分析のためのPythonパッケージ。 http://wbhappy.hatenablog.jp/entry/2015/02/06/210000 http://pppurple.hatenablog.com/entry/2016/04/17/211855
NumPy ndarray:多次元配列オブジェクト
- ndarrayの生成
- ndarray要素のデータ型
- np.array([1, 2, 3], dtype=np.float64) のように要素のデータ型の解釈を指定,変更できる。少数型を整数型にキャストした場合少数部は切り捨て。astype()でデータ型をキャスト.
- NumPyのデータ型(p.94表)
インデックス参照とスライシング
- 一次元配列の場合、リストの考え方と同じ方法でデータを指定できる。
- arr[5:8]=12で三つも要素が12に変わる。
- 二次元以上配列の場合、arr[0,2]のように階層的にアクセスすればいい。(p.98)
- : を使うことで、スライス表現できる。スライス表記へのスカラー値の代入はその範囲全てへの代入を意味する
- 配列のインデックスにbool値の配列を与え、配列を参照することが出来る。(ブールインデックス)(p.101)
- 配列のインデックスに整数の配列を与え、配列を参照する。(ファンシーインデックス)(p.104)
- .Tで転置行列(p.106)
ユニバーサル関数
- ユニバーサル関数とはndarrayを対象に、要素ごとの捜査結果を戻す関数。引数に一つのndarrayを取るものを単項ufuncと呼び二つのndarrayを引数にとり、一つのndarrayを返すような処理を2項funcという。(p108,9)
- ndarrayを用いたデータ処理
- np.where(条件,真の値の場合,負の値の場合)を用いて条件制御。
- 統計関数は、ndarray配列自体、あるいは特定の軸を中心とした統計処理を提供。(p.115)
- python基準のリスト型と同じくsort関数で並び替える。
- 一次元ndarrayを対象とした基本的な集合関数(p.118)
- np.unique–配列要素から重複を取り除きソートした結果を返す。
- ndarrayのファイル入出力
- ndarrayの保存:バイナリ形式
- np.save(‘保存名’,ndarray名)で保存、np.load(‘保存名’)で読み込み
- np.savez(p.118)で、複数のndarrayを圧縮できる。
- ndarrayの保存:テキスト形式
- arr = np.loadtxt(‘テキスト名.txt’,delimiter = ‘,’)で配列に読み込みできる。
- ndarrayの保存:バイナリ形式
- 行列計算
- 乱数生成
- randomモジュールでは乱数生成のための様々な確率分布を用意している。(p.122)