diag()方法比较有意思,主要用于以下两个方面:
1.对1xn矩阵来说,会生成一个将1xn矩阵元素作为对角线的nxn矩阵
import numpy as np
b=[1,2,3,4]
a=np.diag(b,k=0)
print(a)
结果为
[[1 0 0 0]
[0 2 0 0]
[0 0 3 0]
[0 0 0 4]]
2.对nxn矩阵来说,会取对角线元素生成1xn的矩阵:
import numpy as np
b=np.array([[1,2,3,4],
[4,6,8,10],
[5,7,6,9],
[10,15,8,2]])
a=np.diag(b,k=0)
print(a)
结果为
[1 6 6 2]
k值决定取值在对角线的右上位置或者左下位置。
k=0,对角线
k=-1,对角线左下角1格
k=1,对角线右上角1格
k=n,
k=-n,
同理
import numpy as np
b=np.array([[1,2,3,4],
[4,6,8,10],
[5,7,6,9],
[10,15,8,2]])
a=np.diag(b,k=-1)
print(a)
结果为
[4 7 8]