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

Python NumPyで行列・ベクトルの負の無限大ノルム(-inf)を計算する方法

PythonのNumPyを使って線形代数における行列やベクトルのノルムを求めるには、linalg.norm()メソッドを使用します。この記事では、負の無限大(-np.inf)を指定したノルムの計算方法を、サンプルコードとともにわかりやすく解説します。

LA.norm()メソッドのパラメータ

numpy.linalg.norm()メソッドは、以下の4つの主要なパラメータを受け取ります。

第1引数:x

ノルムを計算する対象となる入力配列です。axisがNoneの場合、xは1次元または2次元である必要があります(ただしordもNoneの場合を除く)。axisordがどちらもNoneの場合は、x.ravel()の2-ノルムが返されます。

第2引数:ord

ノルムの次数(オーダー)を指定します。-np.infを指定すると負の無限大ノルムが計算されます。デフォルト値はNoneです。

第3引数:axis

整数を指定した場合、その軸に沿ってベクトルノルムを計算します。2要素のタプルを指定した場合は、2次元行列を保持する軸とみなされ、それらの行列ノルムが計算されます。axisがNoneの場合、xが1次元ならベクトルノルム、2次元なら行列ノルムが返されます。デフォルト値はNoneです。

第4引数:keepdims

Trueに設定すると、ノルムを計算した軸がサイズ1の次元として結果に残ります。このオプションにより、元の配列xに対して正しくブロードキャストできるようになります。

実装手順

まず、必要なライブラリをインポートします。

import numpy as np
from numpy import linalg as LA

次に、配列を作成します。

arr = np.array([[ -4, -3, -2],
   [-1, 0, 1],
   [2, 3, 4] ])

作成した配列を表示します。

print("Our Array...\n",arr)

配列の次元数を確認します。

print("\nDimensions of our Array...\n",arr.ndim)

配列のデータ型を確認します。

print("\nDatatype of our Array object...\n",arr.dtype)

配列の形状を確認します。

print("\nShape of our Array object...\n",arr.shape)

負の無限大ノルムを求めるには、LA.norm()メソッドの第2引数に-np.infを指定します。

print("\nResult...\n",LA.norm(arr, -np.inf))

完全なサンプルコード

import numpy as np
from numpy import linalg as LA

# 配列を作成
arr = np.array([[ -4, -3, -2],
   [-1, 0, 1],
   [2, 3, 4] ])

# 配列を表示
print("Our Array...\n",arr)

# 次元数を確認
print("\nDimensions of our Array...\n",arr.ndim)

# データ型を確認
print("\nDatatype of our Array object...\n",arr.dtype)

# 形状を確認
print("\nShape of our Array object...\n",arr.shape)

# 負の無限大ノルムを計算
print("\nResult...\n",LA.norm(arr, -np.inf))

実行結果

Our Array...
[[-4 -3 -2]
[-1 0 1]
[ 2 3 4]]

Dimensions of our Array...
2

Datatype of our Array object...
int64

Shape of our Array object...
(3, 3)

Result...
2.0

このように、LA.norm(arr, -np.inf)を実行すると、行列の各行ベクトルの最小ノルム(最小絶対行和)が計算され、結果として2.0が返されます。負の無限大ノルムは、行列の行方向の絶対値の和の中で最小のものを表すため、数値解析や機械学習の分野で行列の性質を評価する際に役立ちます。

  1. Python NumPyのlinalg.norm()で行列・ベクトルのノルムを計算する方法

    線形代数において行列またはベクトルのノルム(Norm)を返すには、Python NumPyのnumpy.linalg.norm()メソッドを使用します。この記事では、LA.norm()メソッドの基本的な使い方と各パラメータの意味を、実際のコード例とともにわかりやすく解説します。numpy.linalg.norm()メソッドのパラメータ第1引数:xノルムを計算する対象となる入力配列です。axisがNoneの場合、xは1次元または2次元である必要があります(ordがNoneの場合を除く)。axisとordがどちらもNoneの場合は、x.ravel()の2-ノルムが返されます。第2引数:ordノルム

  2. 【Python入門】numpy.linalg.cholesky()でコレスキー分解を求める方法

    線形代数におけるコレスキー分解(Cholesky decomposition)とは、エルミート行列かつ正定値である正方行列 a を、下三角行列 L とその共役転置 LH の積「L * LH」に分解する手法です。NumPyでは numpy.linalg.cholesky() メソッドを使うことで、この分解を簡単に求めることができます。numpy.linalg.cholesky()メソッドの概要numpy.linalg.cholesky() は、引数として渡された正方行列のコレスキー分解を計算し、下三角行列 L を返します。このメソッドには以下のような特徴があります。前提条件: 入力行列 a はエ