脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - python生成单位阵或对角阵的三种方式小结

python生成单位阵或对角阵的三种方式小结

2022-12-27 14:01小Aer Python

这篇文章主要介绍了python生成单位阵或对角阵的三种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python生成单位阵或对角阵

前提:

?
1
import numpy as np

1.identity

?
1
2
3
4
5
np.identity(4)
array([[ 1., 0., 0., 0.],
       [ 0., 1., 0., 0.],
       [ 0., 0., 1., 0.],
       [ 0., 0., 0., 1.]])

2.eye

?
1
2
3
4
5
np.eye(4)
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

3.diag(可以指定对角元素)

?
1
2
3
4
5
6
7
8
9
10
11
12
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函数可以达到这样的目的

?
1
np.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)
  • N表示输出的行数;
  • M表示输出的列数,不给默认等于N;
  • K默认等于0,表示主对角线,负数代表低对角,正数代表高对角;
  • dtype表示输出数据的类型;
  • order表示输出的数组的形式是按照C语言的行优先’C’,还是按照Fortran形式的列优先‘F’存储在内存中。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    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.]]
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    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.]]

动动小手,感悟一下就好啦!以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_41542989/article/details/111587600

延伸 · 阅读

精彩推荐
  • Python14道基础Python练习题(附答案)

    14道基础Python练习题(附答案)

    这篇文章主要给大家分享的是14道基础的Python练习题,我们都知道,无论是学习什么语言,刚开始的时候都缺不了练习的,下面小编讲给大家分享14个pytho...

    小小程序员ol3722022-02-25
  • Pythonpython绘制折线图和条形图的方法

    python绘制折线图和条形图的方法

    这篇文章主要为大家详细介绍了python实现折线图和条形图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    柠檬树下你和我₰9462022-12-04
  • Pythonscrapy+flask+html打造搜索引擎的示例代码

    scrapy+flask+html打造搜索引擎的示例代码

    本文主要介绍了scrapy+flask+html打造搜索引擎的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    努力的蜗牛_冲冲6062021-12-15
  • PythonPython中常用的内置函数

    Python中常用的内置函数

    这篇文章主要介绍了Python中常用的内置函数,主要介绍内容有map()、filter()、all()、int()等更多相关函数,需要的小伙伴可以参考一下...

    程序员班长4262022-11-25
  • PythonPyQt5响应回车事件的方法

    PyQt5响应回车事件的方法

    今天小编就为大家分享一篇PyQt5响应回车事件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    数学工具构造器8152021-07-21
  • Pythonpython 遍历字符串(含汉字)实例详解

    python 遍历字符串(含汉字)实例详解

    这篇文章主要介绍了python 遍历字符串(含汉字)实例详解的相关资料,需要的朋友可以参考下...

    Anderslu16302020-09-28
  • Pythonpython中pandas操作apply返回多列的实现

    python中pandas操作apply返回多列的实现

    本文主要介绍了python中pandas操作apply返回多列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    xiaozheng1231218552022-08-08
  • Python简单的编程0基础下Python入门指引

    简单的编程0基础下Python入门指引

    这篇文章主要介绍了简单的编程0基础下Python入门指引,包括从各个系统的Python安装和简单的语句知识,需要的朋友可以参考下 ...

    Julian Meyer2492020-05-27