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

Python NumPyのnp.linalg.det()で行列のスタックの行列式を一括計算する方法

線形代数において、複数の行列(行列のスタック)からなる配列の行列式をまとめて計算するには、PythonのNumPyが提供するnp.linalg.det()関数を使用します。第1引数「a」には、行列式を計算したい入力配列を指定します。このメソッドは、配列aに含まれる各行列の行列式を返します。

np.linalg.det()は、配列の最後の2つの軸を行列とみなして処理を行うため、形状が(3, 2, 2)のような3次元配列を渡すと、2×2行列が3つ含まれているものとして、それぞれの行列式を一度に計算できます。例えば2×2行列の場合、行列式は「ad − bc」の公式で求められます。

手順

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

import numpy as np

配列を作成します。

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

配列を表示します。

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)

線形代数における行列のスタックの行列式を計算するために、Pythonのnp.linalg.det()を使用します。

print("\nResult (determinant)...\n",np.linalg.det(arr))

コード例

import numpy as np

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

# 配列を表示
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)

# np.linalg.det()を使って行列のスタックの行列式を計算
print("\nResult (determinant)...\n",np.linalg.det(arr))

実行結果

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

[[1 2]
[2 1]]

[[1 3]
[3 1]]]

Dimensions of our Array...
3

Datatype of our Array object...
int64

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

Result (determinant)...
[-2. -3. -8.]

実行結果から、3つの2×2行列それぞれに対して行列式が計算され、[-2.0, -3.0, -8.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 はエ