Python中的diag
函數(shù)是NumPy庫(kù)中的一個(gè)函數(shù),用于從給定的二維數(shù)組中提取對(duì)角線元素,或者創(chuàng)建一個(gè)新的二維數(shù)組,其對(duì)角線元素為給定的一維數(shù)組
v
:輸入的一維數(shù)組。如果未提供此參數(shù),則返回一個(gè)單位矩陣。k
:可選參數(shù),表示要提取或創(chuàng)建的對(duì)角線的偏移量。默認(rèn)值為0,表示主對(duì)角線。正值表示上對(duì)角線,負(fù)值表示下對(duì)角線。示例:
import numpy as np
# 創(chuàng)建一個(gè)二維數(shù)組
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 提取主對(duì)角線元素
main_diag = np.diag(a)
print("Main diagonal:", main_diag)
# 提取上對(duì)角線元素(k=1)
upper_diag = np.diag(a, k=1)
print("Upper diagonal:", upper_diag)
# 提取下對(duì)角線元素(k=-1)
lower_diag = np.diag(a, k=-1)
print("Lower diagonal:", lower_diag)
# 使用一維數(shù)組創(chuàng)建一個(gè)新的二維數(shù)組,其對(duì)角線元素為給定的一維數(shù)組
b = np.diag([1, 2, 3])
print("New array with diagonal elements:")
print(b)
輸出:
Main diagonal: [1 5 9]
Upper diagonal: [2 6]
Lower diagonal: [4 8]
New array with diagonal elements:
[[1 0 0]
[0 2 0]
[0 0 3]]