numpy.diag()
是一個在 NumPy 庫中的函數(shù),用于從給定的二維數(shù)組中提取對角線元素,或者創(chuàng)建一個新的二維數(shù)組,其對角線元素為給定的一維數(shù)組
提取對角線元素:
如果傳遞一個二維數(shù)組(或矩陣)給 numpy.diag()
,則它將返回該數(shù)組的主對角線元素??梢酝ㄟ^設(shè)置 k
參數(shù)來獲取不同的對角線元素。例如,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]
創(chuàng)建對角線數(shù)組:
如果傳遞一個一維數(shù)組給 numpy.diag()
,則它將創(chuàng)建一個新的二維數(shù)組,其對角線元素為給定的一維數(shù)組??梢酝ㄟ^設(shè)置 k
參數(shù)來指定對角線的位置。
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 也提供了類似的函數(shù)。這些庫的函數(shù)可能會有所不同,但基本用法與 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]
請注意,這里提供的示例代碼僅用于演示目的。在實際應(yīng)用中,您可能需要根據(jù)具體需求調(diào)整代碼。