Python での NumPy の大きさ

Muhammad Maisam Abbas 2023年1月30日
  1. Python の numpy.linalg.norm() 関数を使用して NumPy の大きさを計算する
  2. Python の numpy.dot() 関数を使用して NumPy の大きさを計算する
  3. Python の numpy.einsum() 関数を使用して NumPy の大きさを計算する
Python での NumPy の大きさ

このチュートリアルでは、NumPy でベクトルの大きさを計算する方法を紹介します。

Python の numpy.linalg.norm() 関数を使用して NumPy の大きさを計算する

1 次元の NumPy 配列の形式のベクトルがあり、その大きさを計算するとします。この目的のために numpy.linalg.norm() 関数を使用できます。NumPy ライブラリの numpy.linalg サブモジュールには、線形代数に関連する関数が含まれています。numpy.linalg サブモジュール内の norm() 関数は、ベクトルを入力パラメーターとして受け取り、その大きさを返します。

import numpy as np

v = np.array([1, 1, 3, 4])

magnitude = np.linalg.norm(v)
print(magnitude)

出力:

5.196152422706632

上記のコードでは、np.linalg.norm(v) 関数を使用してベクトル v の大きさを計算しました。最初に、n.array() 関数を使用して 1DNumPy 配列の形式でベクトル v を作成しました。次に、np.linalg.norm(v) 関数を使用してその大きさを計算し、出力を magnitude 変数内に格納しました。

Python の numpy.dot() 関数を使用して NumPy の大きさを計算する

numpy.dot() 関数を numpy.sqrt() 関数と一緒に使用して、NumPy のベクトルの大きさを計算することもできます。numpy.dot() 関数は 2つの異なるベクトル間の内積を計算し、numpy.sqrt() 関数は特定の数値の平方根を計算するために使用されます。ベクトルの内積をそれ自体で計算し、結果の平方根をとってベクトルの大きさを決定できます。

import numpy as np

v = np.array([1, 1, 3, 4])

magnitude = np.sqrt(v.dot(v))
print(magnitude)

出力:

5.196152422706632

最初に、n.array() 関数を使用して 1DNumPy 配列の形式でベクトル v を作成しました。次に、v.dot(v) 関数を使用してベクトル v の内積を計算し、np.sqrt(v.dot(v)) 関数を使用して結果の値の平方根を取りました。平方根の結果は、ベクトル v の大きさです。

Python の numpy.einsum() 関数を使用して NumPy の大きさを計算する

numpy.einsum() 関数は、オペランドに対してアインシュタインの縮約記法を実行します。この方法は、ベクトルの内積をそれ自体で取得するのと似ています。numpy.einsum() 関数を numpy.sqrt() 関数と一緒に使用して、前の例と同じ目標を達成できます。アインシュタインの縮約記法を実行し、結果の値の平方根を取ることにより、ベクトルの大きさを決定できます。

import numpy as np

v = np.array([1, 1, 3, 4])

magnitude = np.sqrt(np.einsum("i,i", v, v))
print(magnitude)

出力:

5.196152422706632

最初に、n.array() 関数を使用して 1DNumPy 配列の形式でベクトル v を作成しました。次に、np.einsum('i,i',v,v) 関数を使用してアインシュタインの縮約記法を実行しました。次に、結果の値の平方根を計算し、その結果を magnitude 変数に格納しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn