千家信息网

python生成单位阵或对角阵的三种方式是什么

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本篇内容介绍了"python生成单位阵或对角阵的三种方式是什么"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年01月20日python生成单位阵或对角阵的三种方式是什么

本篇内容介绍了"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=,order='C)
  • N表示输出的行数;

  • M表示输出的列数,不给默认等于N;

  • K默认等于0,表示主对角线,负数代表低对角,正数代表高对角;

  • dtype表示输出数据的类型;

  • order表示输出的数组的形式是按照C语言的行优先’C’,还是按照Fortran形式的列优先‘F’存储在内存中。

看下面两个例子就明白用法啦

    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)>>>[[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]][[1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.]][[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)>>>[[0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.] [0. 0. 0. 0.]][[0. 1. 0. 0.] [0. 0. 1. 0.] [0. 0. 0. 1.] [0. 0. 0. 0.]][[0. 0. 0. 0.] [1. 0. 0. 0.] [0. 1. 0. 0.] [0. 0. 1. 0.]]

"python生成单位阵或对角阵的三种方式是什么"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0