import numpy as np
假設有三個一維陣列:
upper_diag=np.array([5,4,3,2,1])
center_diag=np.array([9,9,9,9,9])
lower_diag=np.array([1,2,3,4,5])
有什么方便的命令能將上述三個陣列變成如下形式的三對角陣:
9 4 0 0 0
1 9 3 0 0
0 2 9 2 0
0 0 3 9 1
0 0 0 4 9
uj5u.com熱心網友回復:
沒想到方便的命令,這樣可以嗎?
import numpy as np
upper_diag = np.array([5,4,3,2,1])
center_diag = np.array([9,9,9,9,9])
lower_diag = np.array([1,2,3,4,5])
d = np.insert(np.eye(5,dtype=int), 5, values=np.zeros(5,dtype=int), axis=0)[1:]
x = d*upper_diag
y = np.diag(center_diag)
z = d.T*lower_diag
print(x+y+z)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/103624.html
上一篇:python安裝不了
下一篇:中國郵路問題軟體求解
