Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 基礎線形代数 | NumPyによる数学
NumPy基礎
セクション 4.  3
single

single

book基礎線形代数

メニューを表示するにはスワイプしてください

線形代数は、機械学習、ディープラーニング、データ分析などさまざまな分野で重要な役割を果たす、数学の基礎的な分野。

ベクトルと行列

線形代数において、ベクトルは値の順序付き集合。1次元NumPy配列はベクトルを効率的に表現可能。行列は数値の2次元配列であり、NumPyの2次元配列で表現できる。

ベクトルと行列の加算・減算、スカラー倍については、**「基本的な数学演算」**の章ですでに説明済み。ここではその他の演算に焦点を当てる。

転置

転置は、行列を対角線で反転させる操作。つまり、行列の行をに、列をに変換する。

NumPy 配列の .T 属性を使用して行列を転置可能:

12345
import numpy as np matrix = np.array([[1, 2, 3], [4, 5, 6]]) # Transposing a matrix transposed_matrix = matrix.T print(transposed_matrix)
copy

ドット積

ドット積 は、機械学習や深層学習で最も一般的に使用される線形代数演算の一つ。2つの ベクトル(要素数が等しい必要あり)のドット積は、それぞれの 要素ごと の積の合計。結果は スカラー となる:

行列の積

行列の積は、最初の行列の列数が2番目の行列の行数等しい場合にのみ定義されます。結果として得られる行列は、最初の行列と同じ行数、および2番目の行列と同じ列数を持ちます。

ご覧の通り、結果の行列の各要素は、2つのベクトルのドット積です。要素の行番号は最初の行列の行ベクトルの番号に対応し、列番号は2番目の行列の列ベクトルの番号に対応します。

最初の行列の列数は2番目の行列の行数と等しい必要があります。これは、ドット積を計算するために2つのベクトルが同じ要素数を持つ必要があるためです。

NumPyにおけるドット積と行列の積

NumPy では、ドット積と行列の積の両方に dot() 関数が用意されています。この関数は2つの配列を引数として受け取ります。

また、2つの配列の間に @ 演算子を使うことでも同じ結果を得ることができます。

12345678910111213
import numpy as np vector_1 = np.array([1, 2, 3]) vector_2 = np.array([4, 5, 6]) # Dot product using the dot() function print(np.dot(vector_1, vector_2)) # Dot product using the @ operator print(vector_1 @ vector_2) matrix_1 = np.array([[1, 2, 3], [4, 5, 6]]) matrix_2 = np.array([[7, 10], [8, 11], [9, 12]]) # Matrix multiplication using the dot() function print(np.dot(matrix_1, matrix_2)) # Matrix multiplication using the @ operator print(matrix_1 @ matrix_2)
copy

行列積において、右側の引数がベクトル(1次元配列)の場合、NumPyはそれを最後の次元が1の行列として扱います。例えば、6x4行列に要素数4のベクトルを掛ける場合、そのベクトルは4x1行列として扱われます。

また、行列積で左側の引数がベクトルの場合、NumPyはそれを最初の次元が1の行列として扱います。例えば、要素数4のベクトルに4x6行列を掛ける場合、そのベクトルは1x4行列として扱われます。

下図は、課題で使用されるexam_scores配列とcoefficients配列の構造を示しています。

タスク

スワイプしてコーディングを開始

exam_scores 配列は、3人の学生(各行が1人の学生を表す)の模擬試験スコアを3つの科目(各列が1つの科目を表す)について格納しています。

  1. 各科目の試験スコアに、それぞれの係数を掛けます。
  2. 得られたスコアを各学生ごとに合計し、最終スコアを算出します。
  3. exam_scorescoefficients のドット積を計算します。

これにより、各学生の科目スコアの重み付けによる最終スコアが得られます。

解答

Switch to desktop実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  3
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt