Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

คำนวณ log-determinants ของสแต็กเมทริกซ์ใน Python ด้วย numpy.linalg.slogdet()

เมธอด numpy.linalg.slogdet() คำนวณ log-determinant ของสแต็กเมทริกซ์ คืนค่า sign (เครื่องหมาย determinant) และ logdet (ln ของค่าสัมบูรณ์ determinant) หาก determinant เป็น 0 sign=0 และ logdet=-Inf determinant = sign * exp(logdet)

ขั้นตอนการใช้งาน

import numpy as np

สร้างสแต็กเมทริกซ์ 3 ตัว 2x2

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)

คำนวณ determinant และ slogdet

print("\nDeterminant...\n", np.linalg.det(arr))
sign, logdet = np.linalg.slogdet(arr)
print("\nResult....\n", (sign, logdet))

โค้ดตัวอย่างสมบูรณ์

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)
print("\nDeterminant...\n", np.linalg.det(arr))
sign, logdet = np.linalg.slogdet(arr)
print("\nResult....\n", (sign, logdet))

ผลลัพธ์ที่คาดหวัง

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)
Determinant...
[-2. -3. -8.]
Result....
(array([-1., -1., -1.]), array([0.69314718, 1.09861229, 2.07944154]))