python生成对角矩阵,python矩阵对角化
本文主要介绍了python中生成单位矩阵或对角矩阵的三种方法的总结,具有很好的参考价值。希望对大家有帮助。如有错误或不足之处,请不吝赐教。
目录
python生成单位矩阵或对角矩阵1.identity2.eye3.diag(可以指定对角元素)python创建对角矩阵的np.eye()函数。请看下面两个例子来理解用法。
python生成单位阵或对角阵
前提:
将numpy作为np导入
1.identity
np.identity(4)
数组([[ 1。 0. 0. 0.],
[ 0. 1. 0. 0.],
[ 0. 0. 1. 0.],
[ 0. 0. 0. 1.]])
2.eye
眼睛(4)
数组([[1。 0. 0. 0.],
[0. 1. 0. 0.],
[0. 0. 1. 0.],
[0. 0. 0. 1.]])
3.diag(可以指定对角元素)
np.diag([1] * 4)
Out[1]:
数组([[1,0,0,0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]])
np.diag([2] * 4)
[2]:
数组([[2,0,0,0],
[0, 2, 0, 0],
[0, 0, 2, 0],
[0, 0, 0, 2]])
有趣的是,前两个方法元素是浮点数,最后一个是整数。用的时候注意区分就好了。
python创建对角阵的np.eye()函数
最近博主在研究卡尔曼滤波,其中初始矩阵定义需要对角矩阵,于是查了一些资料,发现numpy中有一个eye函数可以达到这个目的。
np.eye(N,M=无,k=0,dtype=class float ,order=C )
n表示输出的行数;m表示输出列数,默认不等于N;k默认等于0,表示主对角线,负数表示低对角线,正数表示高对角线;Dtype表示输出数据的类型;指示order的输出数组是根据C语言中的行优先级“C”还是Fortran中的列优先级“F”存储在内存中。
看下面两个例子就明白用法啦
a=np.eye(4)
打印(类型(a))
打印(一份)
a=np.mat(a)
打印(类型(a))
打印(一份)
a=a.I
打印(类型(a))
打印(一份)
类“numpy.ndarray”
[[1.0.0.0.]
[0.1.0.0.]
[0.0.1.0.]
[0.0.0.1.]]
类“numpy.matrix”
[[1.0.0.0.]
[0.1.0.0.]
[0.0.1.0.]
[0.0.0.1.]]
类“numpy.matrix”
[[1.0.0.0.]
[0.1.0.0.]
[0.0.1.0.]
[0.0.0.1.]]
a=np.eye(4,k=1)
打印(类型(a))
打印(一份)
a=np.mat(a)
打印(类型(a))
打印(一份)
a=a.T
打印(类型(a))
打印(一份)
类“numpy.ndarray”
[[0.1.0.0.]
[0.0.1.0.]
[0.0.0.1.]
[0.0.0.0.]]
类“numpy.matrix”
[[0.1.0.0.]
[0.0.1.0.]
[0.0.0.1.]
[0.0.0.0.]]
类“numpy.matrix”
[[0.0.0.0.]
[1.0.0.0.]
[0.1.0.0.]
[0.0.1.0.]]
动动手,感受一下!以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。