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(テンソルフロー)について触れていきます。