本篇内容介绍了“python生成单位阵或对角阵的三种方式是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
python生成单位阵或对角阵
前提:
import numpy as np
1.identity
np.identity(4)
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
2.eye
np.eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
3.diag(可以指定对角元素)
np.diag([1] * 4)
Out[1]:
array([[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]])
np.diag([2] * 4)
Out[2]:
array([[2, 0, 0, 0],
[0, 2, 0, 0],
[0, 0, 2, 0],
[0, 0, 0, 2]])
有趣的地方是前两种方法元素都是浮点数,最后一种是整数,使用的时候注意区分就好
python创建对角阵的np.eye()函数
最近博主在研究kalman滤波,里面初始矩阵定义需要对角阵,于是查了一些资料,发现numpy中有一个eye函数可以达到这样的目的
np.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)
看下面两个例子就明白用法啦
a = np.eye(4)
print(type(a))
print(a)
a = np.mat(a)
print(type(a))
print(a)
a = a.I
print(type(a))
print(a)
>>><class 'numpy.ndarray'>
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
<class 'numpy.matrix'>
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
<class 'numpy.matrix'>
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
a = np.eye(4,k=1)
print(type(a))
print(a)
a = np.mat(a)
print(type(a))
print(a)
a = a.T
print(type(a))
print(a)
>>><class 'numpy.ndarray'>
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]
<class 'numpy.matrix'>
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]
<class 'numpy.matrix'>
[[0. 0. 0. 0.]
[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]
“python生成单位阵或对角阵的三种方式是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注天达云网站,小编将为大家输出更多高质量的实用文章!