线性代数是数学里一个很重要的分支,很多的非线性的问题都要近似的使用线性代数来处理,将一些常见的方法小结

创建矩阵

M=np.mat("1 22 44 5;1 0 -3 6;-9 -3 8 1")
matrix([[ 1, 22, 44,  5],[ 1,  0, -3,  6],[-9, -3,  8,  1]])

<class 'numpy.matrix'>(注意:矩阵类型和数组<class 'numpy.ndarray'>是不一样的)
它们之间可以进行类型的转换,np.array(M) 或 np.mat(np.array([1,2]))

逆矩阵(inverse matrix)
I=np.linalg.inv(M)
numpy.linalg.LinAlgError: Last 2 dimensions of the array must be square
这样计算逆矩阵,会报错,最后两位必须是正方形(方阵矩阵),所以修改如下:
M=np.mat("1 22 44 5;1 0 -3 6;-9 -3 8 1;1 3 4 9")
matrix([[-0.19342604, -1.66624526, -0.18015171,  1.23830594],
        [ 0.27939317,  2.18457649,  0.09355247, -1.62199747],
        [-0.10998736, -1.04551201, -0.04361568,  0.76295828],
        [-0.02275601, -0.0783818 ,  0.00821745,  0.17509482]])
如果要使用,也可以用到广义逆矩阵np.linalg.pinv(M)
正确来说M*I会得到一个单位矩阵,等价于np.eye(4,4),左上角开始的对角线位置都为1,其余为0的矩阵(浮点数转整型:np.round(M*I))
如果不做四舍五入的操作,就会发生我提的这个问题:https://ask.csdn.net/questions/7691772

解线性方程(类似:A=MX,求解X)

M=np.mat('2 4 7;5 1 2;3 5 1')
A=np.array([2,6,8])
X=np.linalg.solve(M,A)
array([ 1.25714286,  0.97142857, -0.62857143])

验证:np.dot(M,X)结果为A,matrix([[2., 6., 8.]])正确

求解范数值(默认是L2范数,参数ord决定

a1=np.array([[9,4,5],[1,8,1]])
np.linalg.norm(a1,ord=1,axis=1,keepdims=True)#L1范数
array([[18.],[10.]])
np.linalg.norm(a1,ord=2,axis=1,keepdims=True)#L2范数
array([[11.04536102],[ 8.1240384 ]])

求解特征值(Eigenvalues)和特征向量(Eigenvectors)
特征值,是线性代数中的一个重要概念,是指设 A 是n阶方阵,如果存在数m和非零n维列向量 x,使得 Ax=mx 成立,则称 m 是A的一个特征值(characteristic value)或本征值(eigenvalue)

A=np.mat('4 1;2 -1')
np.linalg.eigvals(A)#array([ 4.37228132, -1.37228132])>>> a1,a2=np.linalg.eig(A)
>>> a1
array([ 4.37228132, -1.37228132])
>>> a2
matrix([[ 0.93716416, -0.18299738],[ 0.34888871,  0.9831134 ]])

奇异值分解SVD(Singular Value Decomposition)
一种因子分解运算,将一个矩阵分解为3个矩阵的乘积
svd该函数返回3个矩阵:U、Sigma、V,其中U和V是正交矩阵,Sigma包含输入矩阵的奇异值

D=np.mat("1 0 -1;-2 1 4")
u,sigma,v=np.linalg.svd(D,full_matrices=False)
matrix([[-0.27794882,  0.96059588],[ 0.96059588,  0.27794882]])
array([4.76823893, 0.51370952])
matrix([[-0.46120604,  0.20145716,  0.86412036],[ 0.78779586,  0.54106224,  0.29432861]])

验证:np.round(u*np.diag(sigma)*v)
输出结果为
matrix([[ 1.,  0., -1.],
        [-2.,  1.,  4.]])
就是D矩阵,正确
其中np.diag的用法:
d1=np.array([1,2,3])
#d1是一维的,就会沿着对角线形成一个矩阵
np.diag(d1)
array([[1, 0, 0],
       [0, 2, 0],
       [0, 0, 3]])
#d2是矩阵,就会返回对角线的值
d2=np.array([[1,2,3],[6,7,8],[5,9,4]])
np.diag(d2)
array([1, 7, 4])

线性代数的相关计算(numpy)相关推荐

  1. 线性代数的学习及相关资源

    线性代数的学习及相关资源 本来是想写"Coursera公开课笔记: 斯坦福大学机器学习第三课"线性代数回顾(Linear Algebra Review)"的,但是这一课仅 ...

  2. 时间序列的自回归模型—从线性代数的角度来看

    时间序列, 智能运维 时间序列的自回归模型-从线性代数的角度来看 MARCH 23, 2018 LEAVE A COMMENT Fibonacci 序列 在开始讲解时间序列的自回归模型(AutoReg ...

  3. 0. 导读 每个学习过线性代数的人,心中一定充满疑问,往往百思难得其解,本书列举一些,并且自然而然地解决了这些问题,

    导读 如果你有幸读到这个线性代数系列,恭喜你!你将获得最自然和最本质的解读线性代数的方式. 每个学习过线性代数的人,心中一定充满疑问,往往百思难得其解,本系列列举一些,并且自然而然地解决了这些问题,希 ...

  4. c语言中x的n次方怎么表示_线性代数的本质及其在AI中的应用

    线性代数是 AI 专家必须掌握的知识,这已不再是个秘密.如果不掌握应用数学这个领域,你永远就只能是「门外汉」.当然,学习线性代数道阻且长.数学,尤其是线性代数常与枯燥.复杂和毫无意义的事物联系起来.不 ...

  5. MIT 18.06 +线性代数的几何意义+3Blue1Brown 笔记

    第一节 线性映射与线性变换 线性函数:初等f(x)=kxf ( x ) = k xf(x)=kx,满足可加性与比例行,几何意义为一条直线:高等线性函数:扩展初等线性函数,f(x1,x2,⋯,xn)=k ...

  6. 【直观详解】线性代数的本质

    转载自:https://charlesliuyx.github.io/2017/10/06/%E3%80%90%E7%9B%B4%E8%A7%82%E8%AF%A6%E8%A7%A3%E3%80%91 ...

  7. 数据压缩读书笔记——线性代数的几何意义(五)

    文章目录 第四章 向量组及向量空间的几何意义 4.1 向量组的几何意义 4.1.1 线性表示.组合及相关性的意义 4.1.2 向量组等价及秩的几何意义 向量组等价的几何解释 向量的秩及极大无关向量组 ...

  8. 3blue1brown线性代数的本质笔记

    3blue1brown线性代数的本质视频 目录 1.向量究竟是什么? 2.线性组合.张成空间与基 3.矩阵与线性变换 4.矩阵乘法与线性变换复合 5.行列式 6.逆矩阵.列空间和零空间 7.点积与对偶 ...

  9. 线性代数的本质--笔记整理

    线性代数的本质--笔记 00 序言 尽管一批教授和教科书编者用关于矩阵的荒唐至极的计算内容掩盖了线性代数的简明性,但是鲜有与之相较更为初等的理论.            一一让.迪厄多内 线性代数不仅 ...

最新文章

  1. 邻接表存储(链式前向星)
  2. ALIENTEK 战舰ENC28J60 LWIP和UIP补充例程
  3. 蓝桥备赛第一周2021.1.11 递归 枚举 位运算
  4. mysql数据库入门教程(1):数据库的相关概念,存储特点,软件安装教程,数据库启动,服务端登录退出
  5. 【vscode】编译java时报错乱码
  6. OC-NSFileManager和NSFileHandle的使用
  7. 第九节:JWT简介和以JS+WebApi为例基于JWT的安全校验
  8. laravel8找不到控制器_找一个“靠谱儿”的烟雾探测器方案,难不难?
  9. 老板要先想明白三件事
  10. MySQL基于复制的架构方案
  11. B. DZY Loves Modification
  12. 使用webgl(three.js)搭建一个3D智慧园区、3D建筑,3D消防模拟,web版3D,bim管理系统——第四课
  13. 计算机技术在中医药的应用,计算机技术在中医药领域的应用概况
  14. 移动互联网创业组织可持续发展模型
  15. 关于高通8953开机需要按pwrkey很长时间的问题
  16. html飞机翼布局,基础知识 | 飞机客舱布局及主要设施介绍
  17. 第一句超浪漫,第二句超不浪漫
  18. Idea 打包JAVA项目
  19. C/C++大学生考勤系统
  20. html5+css 两列布局

热门文章

  1. 从小编程,到架构师,我们应该具备什么
  2. 编写一个Java项目,定义包,在包下定义包含main方法的类,在main方法中声明8种基本数据类型的变量并赋值,练习数据类型转换。...
  3. Spring for Apache Hadoop 1.0发布
  4. 在递归中使用Continuation来避免StackOverflow(查找第K大的数)
  5. vs2013 提交 github
  6. socket编程(二) select 模型
  7. 大数据之-Hadoop本地模式_执行Grep官方案例---大数据之hadoop工作笔记0021
  8. 基于Spring Security的认证方式_实现授权功能_Spring Security OAuth2.0认证授权---springcloud工作笔记120
  9. k8s核心技术-资源编排(yaml)的编写方式---K8S_Google工作笔记0019
  10. PicPick手册:绿色小巧功能多的截屏软件