IoT, AI,機械学習 トピックス

行列あるいはベクトルのライブラリを知る

投稿日:

Pythonでは種々のライブラリを用います。今回は、多量のデータを分析するために不可欠な行列あるいはベクトルのライブラリであるNumpyについてまとめます。

資料ご覧ください → Jupyterその4

p.1 行列やベクトルを扱うライブラリには、NumpyScipyがあります。Google Colaboratoryはインストール不要ですが、直接jupyter notebookにアクセスして使用する場合は、Windows PowerShellあるいはWindowsシステムツール内のコマンドプロンプトにおいて、「py –m pip install numpy」あるいは「py –m pip install scipy」によりNumpyとScipyをインストールしてください。

p.2  jyupyter notebookを開いたら、左にあるスクリプトを入力してみてください。「np.」の後にNumpyにある種々機能を有するスクリプトを記載することになります。(10,20,30)の行列を表示させます。数字の後に「」を入れると実数となります。30だけに「」をつけても、10や20も実数表示となります。 「arange」は等分量、「linspace」は等分割した行列を表示します。

p.3 行列に一定数加減乗除したり、行列同士加減乗除する事例が左側です。「np.identity(数字) 」では、数字を変えると対角が1でそれ以外が0となる正方単位行列となります。 非正方の場合は「np.eye(行,列,オフセット)」を用います。オフセットは左上からいくつにするかを示しています。

p.4 正方の対角行列は「np.diag([数字,数字,数字、…])」。行列→ベクトルは「reshape((数字,数字)」あるいはベクトル→行列には「ravel(行列)」。転置行列を表示させるのは、「print(行列.T)」です。表示させるだけで元の行列は変わっていませんので、注意が必要です。行列自体を転置するためには、「変数=行列.T」とします。 行の結合は「np.ravel([行列1,行列2]」。 内積は「np.inner(行列1, 行列2)」、外積は「np.outer(行列1, 行列2)」。

p.5 行列の加減乗除計算を「matrix」と「array」を用いて実施してみます。加減除算は同じ結果となりますが、乗算だけは異なる結果となることにご注意ください。arrayは単純に同じ行列の部分の乗算しているだけになります。

p.6 ドット積「np.dot(行列1,行列2)」テンソル積(外積と同じ)「np.outer(行列1, 行列2)」。 この場合は、matrixarray同じ結果になります。

p.7 行列の水平結合は「np.hstack([行列1,行列2]」、垂直結合は「np.vstack([行1,行列2]」。「bmat([[行列1,行列2],[行列1,行列2]」とすると対角に同じマトリックスが表示されます。 行列の垂直分離は「np.vsplit(行列1,2)」、水平分離は「np.hsplit(行列1,2)」。

p.8 垂直方向総和の計算は「p.sum(arr1,axis=0)」、水平方向総和は「p.sum(arr1,axis=1)」。最大は「np. max (行列1)」、最小「np. min (行列1)」

p.9 10×10の行列の乱数を発生させて、統計量の平均「np.mean(行列))」中央値median(行列,axis=0)」分散「np.var(行列)」偏差「np.std(行列))」を表示します。乱数は、実数「np.random.rand」・整数「np.random.randint」・標準正規分布内「np.random.randn」などを使い分けします。

p.10 行列のべき乗は「np.linalg.matrix_power(行列,べき数)」で計算します。逆行列は「np.linalg.inv(行列)」、行列式「np.linalg.det(行列」で表示させます。

今回用いたスクリプトをワードファイルにしておきます。コピペでjupyter ntebookに貼り付けてご利用ください

スクリプトはこちら → jupyterその4(スクリプト)

-IoT, AI,機械学習, トピックス

Copyright© 進化するガラクタ , 2021 All Rights Reserved Powered by STINGER.