numpy.diag()函数用法
numpy模块中有个函数diagonal,就是处理对角线的函数
numpy.diag(v,k=0)
以一维数组的形式返回方阵的对角线(或非对角线)元素,或将一维数组转换成方阵(非对角线元素为0).两种功能角色转变取决于输入的v
v : array_like.
如果v是2D数组,返回k位置的对角线。
如果v是1D数组,返回一个v作为k位置对角线的2维数组。
k : int, optional
对角线的位置,大于零位于对角线上面,小于零则在下面。
当 v是1D数组时
1 import numpy as np 2 a=np.arange(4) 3 print('a= ') 4 print(a) 5 z=np.diag(a) 6 print('z= ') 7 print(z)
输出:
a= [0 1 2 3] z= [[0 0 0 0] [0 1 0 0] [0 0 2 0] [0 0 0 3]]
即以1D数组为对角线,其余元素为0的矩阵
当 v是2D数组时
1 import numpy as np 2 a=np.array([[1,2,3],[4,5,6],[7,8,9]]) 3 print('a= ') 4 print(a) 5 z=np.diag(a) 6 print('z= ') 7 print(z)
输出:
a= [[1 2 3] [4 5 6] [7 8 9]] z= [1 5 9]
输出对角线元素
设置K
1 import numpy as np 2 a=np.array([[1,2,3],[4,5,6],[7,8,9]]) 3 print('a= ') 4 print(a) 5 z=np.diag(a) 6 print('z= ') 7 print(z) 8 9 z=np.diag(a,k=1) 10 print('k=1,z= ') 11 print(z) 12 13 z=np.diag(a,k=-1) 14 print('k=-1,z= ') 15 print(z)
输出:
a= [[1 2 3] [4 5 6] [7 8 9]] z= [1 5 9] k=1,z= [2 6] k=-1,z= [4 8]
k=1,则输出对角线元素上移1的对角线
k=-1,则输出对角线元素下移1的对角线
————————————————
版权声明:本文为CSDN博主「ding_programmer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ding_programmer/article/details/105997391