0
0

More than 3 years have passed since last update.

学習記録 その17(21日目)

Posted at

学習記録(21日目)

勉強開始:12/7(土)〜

教材等:
・大重美幸『詳細! Python3 入門ノート』(ソーテック社、2017年):12/19(木)読了
・Progate Python講座(全5コース):12/21(土)終了
・Andreas C. Müller、Sarah Guido『(邦題)Pythonではじめる機械学習』(オライリージャパン、2017年):12月23日(土)読了
Kaggle : Real or Not? NLP with Disaster Tweets :12月28日(土)投稿〜1月3日(金)まで調整
Wes Mckinney『(邦題)Pythonによるデータ分析入門』(オライリージャパン、2018年):1月4日(土)〜

『Pythonによるデータ分析入門』

p.134 4章 Numpyの基礎 まで読み終わり。

・NumPy(Numerical Python) : 数的Python といった意味で解釈
 ベクトル化記法による高速な計算、データ操作
 数理モデリングや分析手法を扱えるわけではないが、習熟することでpandasのような配列志向ツールを使う時の武器となる。
 CやFortranといった低水準言語へのインターフェースとしての役割

・ndarray : N次元配列オブジェクト、Python環境における高速かつ柔軟なデータ処理に寄与
 arrayで生成、データ型は推測されたものが用いられるが、dtypeでデータ型の指定も可能
 astypeで型変換(キャスト)できる。

・ベクトル演算を用いることでループ型を書く必要がなくなる。(=高速な動作)

・スライシング(一部要素の切り取り・抽出)
 二次元配列に対するスライスは軸に沿う形で切り出される。(多次元配列のスライスとは少し異なる。)
 スライスにスカラーが混ざると次元が下がる。shapeで取り出すとよくわかる。
 (3,) → 3つの要素。 (1, 3) → 1×3の行列。 p.108

・1次元の真偽値配列
 ndarrayの指定するもの(trueであるもの)のみに数値代入等が可能
 data[names != 'A'] = 7 namesがAでないものにのみ7を代入、など。
 この類の操作はpandas環境でよく使われる。

・転地行列を用いた内積の計算(np.dot) 転地は.Tで行う。X.T.dot(X)でXの内積計算。
 transposeの引数に軸の順序を与えることで行列の部分入れ替えも可能。

・単項ufunc(abs, sqrt, log ...)、 二項ufunc(add, divide, maximum ...)

・np.whereでpythonの三項演算子 A if condition else yのベクトル演算ができる。
 第1引数で真偽判定(条件式)、第2引数でTrue、第3引数でFalseの値を設定し、対応したものを返す。

・sum、meanといった集計処理(統計関数)で次元削減が可能

・np.uniqueといった集合関数で配列中の重複を取り除いた値をソートして出力できる。(Kaggle前処理で使ったような)

・np.linalgモジュールで線形代数の計算が可能。行列式、正方行列に対する逆行列、QR分解 ...

・np.randomで様々な種類の確率分布に基づく計算が可能。二項分布、正規分布 ...
 Pythonの組み込みであるrandomを補完する形で提供されている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0