Ipython, Numpy, pandas, matplotlib, SciPy

Ipython


IPythonは、Pythonの対話型インタプリタを強力に拡張したもの。

  • 補完機能が充実している。tabキーでの候補を活用
  • イントロスペクション。変数名、オブジェクト名、組み込みモジュール、自作のクラスなどに、?をつけるとそのオブジェクトの情報が表示さらる。??でさらに詳細な情報を表示。
  • マジックコマンド—>デバッグなどの開発補助ツール群の提供、及びIPython自体の提供が目的
    • %run—空の名前空間の環境でスクリプトを稼働させる。このコマンドにファイル名を渡すと、スクリプトが実行し、定義したあらゆる変数に対して後から参照が可能。実行するたびに再度読み込むため、スクリプトの変更があった場合にも即座に反映される。
    • %paste—>クリップボードからのコード片の貼り付けの前に書くコード。即時実行される。
    • %cpaste–>pasteと同様。貼り付け時にプロンプトを出す。
    • (p.62)表
  • キーボードショートカット(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の生成
    • np.array(data1) この列挙変数がネストしていて、ネスト内の要素数が同じであれば、多次元配列を返す。
    • data.shape 配列次元数,サイズ
    • data.dtype 要素の型
    • np.zeros*1 全ての値が0の多次元配列オブジェクトを生成
    • np.ones*2 要素を初期化して戻す。
    • np.arrange() 等間隔に増減させた値で要素を満たす。
    • (p.93)
  • 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 = ‘,’)で配列に読み込みできる。
  • 行列計算
    • 四則演算では各要素同士が演算される。* は、要素同士をかけるだけ、
    • np.dot(x,y)で行列の掛け算に!
    • 標準的な行列の分解、転置、行列式の計算機能は、numpy.linalgモジュールで提供される。
    • 頻出の線形代数関数(p.121)
  • 乱数生成
    • randomモジュールでは乱数生成のための様々な確率分布を用意している。(p.122)

pandas入門


*1:縦, 横

*2:)) 全ての値が1の多次元配列オブジェクトを生成

  • np.empty((,,..