python生成对角矩阵,python矩阵对角化

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: