What
Chainerを利用して機械学習を学ぶにあたり、私自身が、気がついた点、リサーチした内容をまとめる記事になります。今回は、Numpyを勉強します。
私の理解に基づいて記述しているため、間違っている場合があります。間違いは都度修正するつもりです、ご容赦ください。
Content
Numpyとは
回帰分析を取り扱うアルゴリズム、多次元配列を便利に扱えるライブラリ?
Pythonプログラムへのモジュール読み込み
import numpy as np
テキスト読んでて、ライブラリとモジュールの違いが分からなくなったので調べてみました。下記参考記事
https://qiita.com/yutaro50/items/f93893a2d7b23cb05461
テンソルはarrayで扱う。
テンソルの取り扱い方法
a = np.array([1, 2, 3]) #Numpy形式の行列を定義
a.shape => #形をタプルで出力
a.rank => #ランクを出力
a.size =>#サイズを出力 データ個数
a.ndim => # lenを出力
a = np.zeros((3, 3)) => #3x3の零行列
a = np.ones((2, 3)) => #2x3の要素が全て1の行列
a = np.full((3, 2), 9) => #3x2の要素が全て9の行列
a = np.eye(5) => #5x5の単位行列
a = np.random.random((4, 5)) => #4x5で要素が0~1の乱数で決定された行列
a = np.arange(3, 10, 1) => #3から10まで1ずつ増える行ベクトル
a = np[0,3] => #1行4列目をの値
#↓この説明が理解できない><
# 4 x 5 行列 e の真ん中の 2 x 3 = 6 個の値を取り出す
center = e[1:3, 1:4]
a[[0, 2, 1], [1, 1, 0]] => # (1, 2), (3, 2), (2, 1)の要素を行ベクトルで出力
そのほか四則演算もできる
行列形が違くても加減算ができる=ブロードキャスト
逆に不本意な計算が発生する可能性がある。注意
行列積 ABの計算
np.dot(A,B) or A.dot(B) # とかく
np.dot(X.T, X) # 行列Xの転置行列とXの積を計算
np.linalg.inv(A) # 行列Aの逆行列を計算
交換法則は一般には成り立たないので順序に注意
行列の取り扱いに困ったときはここを見返そう
Comment
内容が難しくなってきたので、更新頻度が落ちてしまっているが頑張ろう