一、介紹
NumPy是一個開源的Python科學計算庫,它支持高維數組和矩陣運算。np.diag是NumPy中的一個函數,可以用來創建對角矩陣、獲取對角線元素、構建對角線數組等。
二、np.diag的基本用法
np.diag的基本用法可以分為兩種情況:
1、創建對角矩陣。對於給定的一維數組,np.diag返回一個由該數組表示的對角矩陣,其他元素均為零。
import numpy as np arr = np.array([1, 2, 3]) print(np.diag(arr))
輸出結果為:
[[1 0 0] [0 2 0] [0 0 3]]
2、獲取對角線元素。對於給定的二維數組,np.diag返回一個以該數組的對角線為元素的一維數組。
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(np.diag(arr))
輸出結果為:
[1 5 9]
三、np.diag創建不同種類的對角矩陣
np.diag不僅用於創建普通的對角矩陣,還可以創建不同種類的對角矩陣:
1、創建反對角矩陣。反對角矩陣是對角線上元素相等,其他元素均為零的矩陣。np.diag的第二個參數k可以用來控制對角線的位置,k>0表示對角線向右偏移k個位置,k<0表示對角線向左偏移-k個位置,k=0表示對角線在左上角。
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(np.diag(arr, k=2))
輸出結果為:
[0 0 1 0 0 0 0 0 0]
2、創建單位矩陣。單位矩陣是對角線上元素均為1,其他元素均為零的矩陣。
print(np.diag(np.ones(5)))
輸出結果為:
[[1. 0. 0. 0. 0.] [0. 1. 0. 0. 0.] [0. 0. 1. 0. 0.] [0. 0. 0. 1. 0.] [0. 0. 0. 0. 1.]]
四、np.diag的其他用法
np.diag還有一些其他的用法:
1、將一維數組轉換為二維對角矩陣。如果輸入參數是一維數組,np.diag會返回一個與該數組對應的二維對角矩陣。
print(np.diag([1, 2, 3]))
輸出結果為:
[[1 0 0] [0 2 0] [0 0 3]]
2、將二維數組的對角線元素替換為給定的一維數組。如果第二個參數是一個一維數組,np.diag會將該數組的元素替換二維數組的對角線元素。
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(np.diag(np.array([10, 11, 12]), k=1))
輸出結果為:
[[ 0 10 0 0 0] [ 0 0 11 0 0] [ 0 0 0 12 0] [ 0 0 0 0 0] [ 0 0 0 0 0]]
五、總結
np.diag是NumPy中非常實用的函數,可以用來創建對角矩陣、獲取對角線元素、構建對角線數組等。本文介紹了np.diag的基本用法,以及如何創建不同種類的對角矩陣和其他用法。掌握np.diag的各種用法可以在NumPy中進行更加高效和方便的矩陣操作。
原創文章,作者:XZOXI,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/372838.html