ハローラーナー! この記事では、任意の量、例えばベクトルや配列の内積を求めるためのPythonコードを見ていきます。
Pythonプログラミング言語は、これを行うためのいくつかの方法を提供し、それらのいくつかは、以下に説明されています。
こちらもご覧ください。
ドット積とは?
まず、”ドットプロダクト “について理解しましょう。
数学において、ドットプロダクト(スカラー積と呼ばれることもある)とは、2つの同じ長さの数列から単一の値を返す代数演算の一つです。
この単一の値は、両方の数列の対応する要素の積の合計として計算されます。
これらの列は一次元ベクトル、多次元ベクトル、または単なる数値です。
このことを理解するために、例を挙げてみましょう。
例えば、2つのベクトルA,Bが以下のような2次元配列であったとします。
A = [ 1 2 ] [ 3 4 ]、B = [ 5 6 ] [ 7 8 ]。
とすると、A.Bは次のようになります。
[ [ 19 22] [ 43 50] ]
これは [ ((15)+(27)) ((16)+(28)) ] [ ((35)+(47)) ((36)+(48)) ]として計算されます。
ドット積を求める Python コード
Pythonでは、2つの配列の内積を効率的に求める方法として、numpyライブラリのnumpy.dot()メソッドがあります。
Numpy.dot()は、ベクトルや多次元配列などの2つの配列を引数として受け取り、その結果、つまり内積を表示するメソッドです。
このメソッドを使用するには、pythonのnumpyライブラリをインポートする必要があります。
いくつかの例を見てみましょう。
この記事もチェック:Numpy配列の内積 – クイックガイド
実施例1.スカラーの内積
この例では、2 つのスカラー値を受け取り、numpy.dot() を使ってその内積を表示します。
2 つのスカラーの内積は、単純に掛け合わせることで得られます。
例えば、2つのスカラー A = 7 と B = 6 は、A.B = 42 となります。
#importing numpy library import numpy as np
#Taking two scalars a = 3
b = 8
#calculating dot product using dot() print ( "The dot product of given scalars = a.b =" ,np.dot(a,b))
|
上記のコードの出力は次のようになります。
The dot product of given scalars = a.b = 24
|
実施例2.配列の内積
ここでは、2つの配列を扱います。
これらの配列は、1次元、2次元、多次元のいずれでもかまいません。
そして、dot()を使って、それらの内積を計算します。
ここでは、2つの2次元配列の内積を計算します。
2次元配列の内積は、行列の乗算によって計算されます。
#importing numpy library import numpy as np
#Taking two 2-D arrays a = [ [ 1 , 2 ], [ 3 , 4 ]]
b = [ [ 7 , 6 ], [ 5 , 4 ]]
#calculating dot product using dot() print ( "The dot product of given arrays :" )
np.dot(a,b)) |
出力は次のとおりです。
The dot product of given arrays : array( [ [ 17 , 14 ],
[ 41 , 34 ] ] )
|
注意
つまり、a.bとb.aは等しくありません。
例題2では、点積をb.aではなくa.bとして計算していますが、これは全く異なる結果をもたらします。
結論
さて、Pythonで内積を計算するのは簡単ではないでしょうか?もちろん、関数が用意されているので、簡単です。
私からは以上です。
この記事を理解していただけたでしょうか?このような記事をもっと見るには、 https://www.askpython.com/ にチャンネルを合わせてください。
それでは、よいお年を