Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで2つの1次元配列の内積を計算する方法|numpy.inner()の使い方

Pythonで2つの配列の内積(Inner Product)を求めるには、NumPyライブラリのnumpy.inner()メソッドを使用します。このメソッドは、1次元配列に対しては通常のベクトルの内積を計算し、高次元配列に対しては最後の軸に沿った要素ごとの積の総和を返します。

引数には2つのベクトル ab を指定します。a と b がスカラーでない場合は、両者の最後の次元(軸)のサイズが一致している必要があります。

手順

1. 必要なライブラリをインポートする

まず、NumPyをインポートします。

import numpy as np

2. 2つの1次元配列を作成する

array()メソッドを使って、2つのNumPyの1次元配列を作成します。

arr1 = np.array([5, 10, 15])
arr2 = np.array([20, 25, 30])

3. 配列を表示する

作成した配列の内容を確認します。

print("Array1...\n",arr1)
print("\nArray2...\n",arr2)

4. 配列の次元数を確認する

ndim属性で、それぞれの配列の次元数をチェックします。

print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)

5. 配列の形状を確認する

shape属性で、それぞれの配列の形状をチェックします。

print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)

6. 内積を計算する

numpy.inner()メソッドを使って、2つの配列の内積を求めます。

print("\nResult (Inner Product)...\n",np.inner(arr1, arr2))

完全なサンプルコード

import numpy as np

# array()メソッドで2つの1次元配列を作成
arr1 = np.array([5, 10, 15])
arr2 = np.array([20, 25, 30])

# 配列を表示
print("Array1...\n",arr1)
print("\nArray2...\n",arr2)

# 次元数を確認
print("\nDimensions of Array1...\n",arr1.ndim)
print("\nDimensions of Array2...\n",arr2.ndim)

# 形状を確認
print("\nShape of Array1...\n",arr1.shape)
print("\nShape of Array2...\n",arr2.shape)

# numpy.inner()で内積を計算
# 1次元配列の場合は通常のベクトルの内積、高次元では最後の軸に沿った総和積
print("\nResult (Inner Product)...\n",np.inner(arr1, arr2))

実行結果

Array1...
[ 5 10 15]

Array2...
[20 25 30]

Dimensions of Array1...
1

Dimensions of Array2...
1

Shape of Array1...
(3,)

Shape of Array2...
(3,)

Result (Inner Product)...
800

計算結果の解説

この例では、内積は以下のように計算されています。

5 × 20 + 10 × 25 + 15 × 30 = 100 + 250 + 450 = 800

つまり、対応する要素同士を掛け合わせ、その合計を取ることで内積が求められます。これは線形代数におけるドット積(点乗積)と同じ計算であり、機械学習やデータ分析など、さまざまな分野で頻繁に利用される基本的な演算です。

  1. Python NumPyで2つのベクトルの外積を計算する方法

    2つのベクトルの外積(クロス積)を計算するには、PythonのNumPyライブラリが提供する numpy.cross() メソッドを使用します。このメソッドは、指定された2つのベクトルの外積 c を返します。numpy.cross() メソッドの主な引数a:第1引数。最初のベクトルの成分です。b:第2引数。2番目のベクトルの成分です。axisa:第3引数。ベクトルを定義する a の軸を指定します。デフォルトは最後の軸です。axisb:第4引数。ベクトルを定義する b の軸を指定します。デフォルトは最後の軸です。axisc:第5引数。外積ベクトルを格納する c の軸を指定します。入力ベクトルがど

  2. Python(NumPy)で4次元配列と3次元配列のクロネッカー積を計算する方法

    クロネッカー積(Kronecker Product)とは PythonのNumPyでは、numpy.kron()メソッドを使うことで、4次元配列と3次元配列のように次元数が異なる配列同士でもクロネッカー積を簡単に求めることができます。クロネッカー積とは、第1の配列の各要素によって第2の配列全体をスケーリングしたブロックから構成される複合配列のことです。 kron()関数は、引数aとbの次元数が同じであることを前提としており、次元数が異なる場合は、小さい方の配列の先頭にサイズ1の軸が自動的に追加されます。a.shape = (r0, r1, …, rN)、b.shape = (s0, s1, …