EeBlog(テクニカルブログ)

AI(人工知能)実践 第5回 Numpyモジュール2

AI(人工知能)実践 第5回です。
前回の続きです。

 

線形代数の計算

逆行列
array = np.array([[1, 2],[3, 4]])
np.linalg.inv(array)

実行結果:array([[-2. , 1. ],[ 1.5, -0.5]])
 

擬似逆行列
array = np.array([[1, 2],[3, 4]])
np.linalg.pinv(array)

実行結果:array([[-2. , 1. ],[ 1.5, -0.5]])
 

行列の固有値
array = np.array([[1, 2],[3, 4]])
np.linalg.eigvals(array)

実行結果:array([-0.37228132, 5.37228132])
 

行列の固有値と、固有ベクトルからなる行列
array = np.array([[1, 2],[3, 4]])
np.linalg.eig(array)

実行結果:(array([-0.37228132, 5.37228132]), array([[-0.82456484, -0.41597356],[ 0.56576746, -0.90937671]]))
 

連立方程式の解(第一引数 正方行列A,第二引数 ベクトルBとした場合に、AX=Bの解Xを戻す)
arrayA = np.array([[1, 2],[3, 4]])
arrayB = np.array([5, 6])
np.linalg.solve(arrayA,arrayB)

実行結果:array([-4. , 4.5])
 

統計用の計算

最小値
array = np.array([[1, 2],[3, 4]])
np.min(array)  #array.min()でも動く

実行結果:1
 

最大値
array = np.array([[1,2],[3, 4]])
np.max(array)  #array.max()でも動く

実行結果:4
 

中央値
array = np.array([0, 2, 3, 4, 150])
np.median(array)  #要素数が偶数の場合、中央になる2つの要素の平均となるので注意

実行結果:3.0
 

分散
array = np.array([1, 2, 3, 4, 5, 6])
np.var(array)  #array.var()でも動く

実行結果:2.9166666666666665
 

平均
array = np.array([1, 2, 3, 4, 5, 6])
np.mean(array)  #array.mean()でも動く

実行結果:3.5
 

標準偏差
array = np.array([1, 2, 3, 4, 5, 6])
np.std(array)   #array.std()でも動く

実行結果:1.707825127659933
 

乱数生成

0~1の一様乱数からなるn x m 行列生成
np.random.rand(2, 3)

実行結果:array([[0.07081941, 0.67123215, 0.81468999],[0.19232152, 0.44750978, 0.98365387]])
 

標準積分布に従う乱数からなるn x m 行列生成
np.random.randn(2, 3)

実行結果:array([[-0.49069023, -0.86724497, -0.25119011],[ 0.92564985, 0.31499549, 1.12660345]])
 

i 以上 j未満の整数からなる n x m 行列生成
np.random.randint(1, 5, (2, 3))

実行結果:array([[2, 2, 4],[3, 1, 4]])
 

配列操作

配列の重複除外
array = np.array(['A', 'A', 'B', 'C'])
np.unique(array)

実行結果:array([‘A’,’B’,’C’], dtype='<U1′)
 

2つの配列の共通要素を返す。※結果はソートされる
array1 = np.array([4, 3, 2, 1])
array2 = np.array([6, 5,4, 3])
np.intersect1d(array1, array2)

実行結果:array([3, 4])
 

第一引数の配列の各要素から、第二引数の配列に含まれる要素を除外した要素を返す。※結果はソートされる
array1 = np.array([4, 3, 2, 1])
array2 = np.array([6, 5, 4, 3])
np.setdiff1d(array1, array2)

実行結果:array([1,2])
 

2つの配列から共通要素を除いた要素を返す。※結果はソートされる
array1 = np.array([4, 3, 2, 1])
array2 = np.array([6, 5, 4, 3])
np.setxor1d(array1, array2)

実行結果:array([1, 2, 5, 6])
 

2つの配列の要素を全て合わせた要素を返す。※結果はソートされる
array1 = np.array([4, 3, 2, 1])
array2 = np.array([6, 5, 4, 3])
np.union1d(array1, array2)

実行結果:array([1, 2, 3, 4, 5, 6])
 
 
以上でNumpyの紹介を終了します。
紹介した以外にもたくさんのメソッドがありますので、時間があれば公式サイト(https://docs.scipy.org/doc/numpy/user/basics.html)のドキュメントを眺めてみても面白いかもしれません。
次回からは機械学習ライブラリで有名なTensorFlow(テンソルフロー)について触れていきます。