numpy.diag()
是一個在 NumPy 庫中的函數,用于從給定的二維數組中提取對角線元素,或者創建一個新的二維數組,其對角線元素為給定的一維數組
提取對角線元素:
如果傳遞一個二維數組(或矩陣)給 numpy.diag()
,則它將返回該數組的主對角線元素。可以通過設置 k
參數來獲取不同的對角線元素。例如,k=1
表示上對角線,k=-1
表示下對角線。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
diagonal_elements = np.diag(a)
print(diagonal_elements) # 輸出:[1 5 9]
創建對角線數組:
如果傳遞一個一維數組給 numpy.diag()
,則它將創建一個新的二維數組,其對角線元素為給定的一維數組。可以通過設置 k
參數來指定對角線的位置。
import numpy as np
a = np.array([1, 2, 3])
diagonal_matrix = np.diag(a)
print(diagonal_matrix)
# 輸出:
# [[1 0 0]
# [0 2 0]
# [0 0 3]]
使用其他庫:
除了 NumPy 之外,還有其他庫提供了類似的功能。例如,SciPy 和 Pandas 也提供了類似的函數。這些庫的函數可能會有所不同,但基本用法與 NumPy 類似。
import scipy.linalg
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
diagonal_elements = scipy.linalg.diagsvd(a, compute_uv=False)
print(diagonal_elements) # 輸出:[1 5 9]
請注意,這里提供的示例代碼僅用于演示目的。在實際應用中,您可能需要根據具體需求調整代碼。