numpy函數(shù):diag函數(shù)
numpy.diag()是一個(gè)用于返回矩陣對(duì)角線元素或創(chuàng)建對(duì)角陣(diagonal array)的函數(shù)。下面通過(guò)例子來(lái)說(shuō)明問(wèn)題。 例子 首先引入numpy庫(kù)并創(chuàng)建一個(gè)對(duì)角陣,如下所示: impo
numpy.diag()是一個(gè)用于返回矩陣對(duì)角線元素或創(chuàng)建對(duì)角陣(diagonal array)的函數(shù)。下面通過(guò)例子來(lái)說(shuō)明問(wèn)題。
例子
首先引入numpy庫(kù)并創(chuàng)建一個(gè)對(duì)角陣,如下所示:
import numpy as np
x np.diag((1, 2, 3))
print(x)
輸出結(jié)果為:
[[1 0 0]
[0 2 0]
[0 0 3]]
接下來(lái),我們可以提取二維數(shù)組x的對(duì)角元素的值,構(gòu)成一個(gè)一維數(shù)組。例如:
x (9).reshape((3,3))
print(x)
輸出結(jié)果為:
[[0 1 2]
[3 4 5]
[6 7 8]]
我們也可以使用第二個(gè)參數(shù)來(lái)獲取其他元素。請(qǐng)自行觀察這個(gè)值在x數(shù)組中的位置。
y np.diag(x)
print(y)
輸出結(jié)果為:
[0 4 8]
如果連續(xù)使用兩個(gè)diag函數(shù),可以得到一個(gè)對(duì)角陣,除對(duì)角線以外的元素均為零。
x (10,19).reshape((3,3))
print(x)
輸出結(jié)果為:
[[10 11 12]
[13 14 15]
[16 17 18]]
z np.diag(np.diag(x))
print(z)
輸出結(jié)果為:
[[10 0 0]
[ 0 14 0]
[ 0 0 18]]