np.Linear algebra学习
转自:https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.linalg.html
1.分解
//其中我觉得可以的就是svd奇异值分解吧,虽然并不知道数学原理
np.linalg.svd(a, full_matrices=1, compute_uv=1)
a是要分解的(M,N)array;
full_matrices : bool, optional
If True (default), u and v have the shapes (M, M) and (N, N), respectively. Otherwise, the shapes are (M, K) and (K, N), respectively, where K = min(M, N).
当full_matrices是True时(默认):
>>> d=np.mat("4 11 14;8 7 -2")
>>> d
matrix([[ 4, 11, 14],
[ 8, 7, -2]])
>>> U,sigma,V=np.linalg.svd(d)
>>> U
matrix([[-0.9486833 , -0.31622777],
[-0.31622777, 0.9486833 ]])
>>> V
matrix([[-0.33333333, -0.66666667, -0.66666667],
[ 0.66666667, 0.33333333, -0.66666667],
[-0.66666667, 0.66666667, -0.33333333]])
>>> sigma
array([18.97366596, 9.48683298])
>>> U.shape,sigma.shape,V.shape
((2, 2), (2,), (3, 3))
>>> S=np.zeros((2,3))
>>> S[:2,:2]=np.diag(sigma)
>>> S
array([[18.97366596, 0. , 0. ],
[ 0. , 9.48683298, 0. ]])
>>> U*S*V
matrix([[ 4., 11., 14.],
[ 8., 7., -2.]])
当full_matrices是False时:
>>> U,sigma,V=np.linalg.svd(d,full_matrices=0)
>>> U
matrix([[-0.9486833 , -0.31622777],
[-0.31622777, 0.9486833 ]])
>>> sigma
array([18.97366596, 9.48683298])
>>> V
matrix([[-0.33333333, -0.66666667, -0.66666667],
[ 0.66666667, 0.33333333, -0.66666667]])
>>> S=np.diag(sigma)#####
>>> S
array([[18.97366596, 0. ],
[ 0. , 9.48683298]])
>>> U*S*V
matrix([[ 4., 11., 14.],
[ 8., 7., -2.]])
2.矩阵特征值
np.linalg.eig(a) Compute the eigenvalues and right eigenvectors of a square array.
>>> w,v=LA.eig(np.diag((1,2,3)))
>>> w
array([1., 2., 3.])
>>> v
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
>>> np.diag((1,2,3))
array([[1, 0, 0],
[0, 2, 0],
[0, 0, 3]])
np.linalg.eigvals(g):Compute the eigenvalues of a general matrix.
>>> w2=LA.eigvals(np.diag((1,2,3)))
>>> w2
array([1., 2., 3.])
3.范数和其他数字
3.1 np.linalg.norm(x, ord=None, axis=None, keepdims=False):Matrix or vector norm.
Using the axis argument to compute vector norms:axis用来计算矩阵中的向量范数。
>>> a=np.array([3,4])
>>> a
array([3, 4])
>>> LA.norm(a)
5.0
>>> LA.norm(a,ord=1)
7.0
>>> a=np.array([3,-4])
>>> LA.norm(a,ord=1)
7.0
>>> LA.norm(a,ord=np.inf)
4.0
>>> LA.norm(a,ord=-np.inf)
3.0
3.2 np.linalg.cond(x, p=None):Compute the condition number of a matrix.
>>> a=np.array([[1, 0, -1], [0, 1, 0], [1, 0, 1]])
>>> a
array([[ 1, 0, -1],
[ 0, 1, 0],
[ 1, 0, 1]])
>>> LA.cond(a)
1.4142135623730951
>>> LA.cond(a,2)
1.4142135623730951
>>> LA.cond(a,1)
2.0
//其中:
p : {None, 1, -1, 2, -2, inf, -inf, ‘fro’}, optional
Order of the norm:
p norm for matrices None 2-norm, computed directly using the SVD
‘fro’ Frobenius norm inf max(sum(abs(x), axis=1)) -inf min(sum(abs(x), axis=1)) 1 max(sum(abs(x), axis=0)) -1 min(sum(abs(x), axis=0)) 2 2-norm (largest sing. value) -2 smallest singular value inf means the numpy.inf object, and the Frobenius norm is the root-of-sum-of-squares norm.
使用的范数,默认是L2范数。
3.3 np.linalg.det(a):Compute the determinant of an array.
>>> a = np.array([[1, 2], [3, 4]])
>>> LA.det(a)
-2.0000000000000004
3.4 np.linalg.matrix_rank(M, tol=None):Return matrix rank of array using SVD method
>>> LA.matrix_rank(np.eye(4))
4
>>> I=np.eye(4)
>>> I[-1,-1]=0
>>> I
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 0.]])
>>> LA.matrix_rank(I)
3
3.5 trace(a, offset=0, axis1=0, axis2=1, dtype=None, out=None)
>>> np.trace(np.eye(4))
4.0
矩阵对角线上的和。
4.解方程和逆矩阵
4.1 np.linalg.solve(a,b):Solve a linear matrix equation, or system of linear scalar equations.
Solve the system of equations 3 * x0 + x1 = 9
and x0 + 2 * x1 = 8
:
>>> a = np.array([[3,1], [1,2]])
>>> b = np.array([9,8])
>>> x = np.linalg.solve(a, b)
>>> x
array([ 2., 3.])
check:
>>> np.allclose(np.dot(a, x), b)
True
4.2 np.linalg.lstsq(a, b, rcond=-1):Return the least-squares solution to a linear matrix equation
最小二乘求解。
np.Linear algebra学习的更多相关文章
- PYTHON替代MATLAB在线性代数学习中的应用(使用Python辅助MIT 18.06 Linear Algebra学习)
前言 MATLAB一向是理工科学生的必备神器,但随着中美贸易冲突的一再升级,禁售与禁用的阴云也持续笼罩在高等学院的头顶.也许我们都应当考虑更多的途径,来辅助我们的学习和研究工作. 虽然PYTHON和众 ...
- Python Linear algebra
Linear algebra 1.模块文档 NAME numpy.linalg DESCRIPTION Core Linear Algebra Tools ---------------------- ...
- 读Linear Algebra -- Gilbert Strang
转眼间我的学士学位修读生涯已经快要到期了,重读线性代数,一是为了重新理解Algebra的的重要概念以祭奠大一刷过的计算题,二是为了将来的学术工作先打下一点点(薄弱的)基础.数学毫无疑问是指导着的科研方 ...
- 【线性代数】Linear Algebra Big Picture
Abstract: 通过学习MIT 18.06课程,总结出的线性代数的知识点相互依赖关系,后续博客将会按照相应的依赖关系进行介绍.(2017-08-18 16:28:36) Keywords: Lin ...
- Linear Algebra From Data
Linear Algebra Learning From Data 1.1 Multiplication Ax Using Columns of A 有关于矩阵乘法的理解深入 矩阵乘法理解为左侧有是一 ...
- Linear Algebra lecture1 note
Professor: Gilbert Strang Text: Introduction to Linear Algebra http://web.mit.edu/18.06 Lecture 1 ...
- 算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍
调试DeepFlow光流算法,由于作者给出的算法是基于Linux系统的,所以要在Windows上运行,不得不做大量的修改工作.移植到Windows平台,除了一些头文件找不到外,还有一些函数也找不到.这 ...
- 线性代数导论 | Linear Algebra 课程
搞统计的线性代数和概率论必须精通,最好要能锻炼出直觉,再学机器学习才会事半功倍. 线性代数只推荐Prof. Gilbert Strang的MIT课程,有视频,有教材,有习题,有考试,一套学下来基本就入 ...
- Here’s just a fraction of what you can do with linear algebra
Here’s just a fraction of what you can do with linear algebra The next time someone wonders what the ...
随机推荐
- MFC窗口阴影
SetClassLong(this->m_hWnd, GCL_STYLE, GetClassLong(this->m_hWnd, GCL_STYLE) | CS_DROPSHADOW);
- Dom捕捉事件和冒泡事件-原理与demo测试
先参考一下百度百科对冒泡事件流的解释: ----------不喜欢读文字的同学,可以直接看下面demo,传递顺序简单明了! http://baike.baidu.com/link?url=kaeJHT ...
- ssh 管理 linux登录远程服务器
使用 ssh 免秘登录方式 客户端:1. 生成公钥和私钥 ssh-keygen 一般不需要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个. 运行结束以后,在$HOME/. ...
- Flask web开发之路五
Jinjia2模板 紧接着上篇博客,接下去写if条件判断和for循环遍历以及过滤器 if条件判断 主app文件代码: from flask import Flask,render_template a ...
- oracle中如何生成awr报告
oracle中如何生成awr报告 1.进入数据库 sqlplus / as sysdba 2.查看用户 show parameter db_name 3.开始压测后执行 exec DBMS_WOR ...
- PAT甲级1139 First Contact
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805344776077312 题意: 有m对朋友关系,每个人用4为数 ...
- 机器学习入门之使用numpy和matplotlib绘制图形
机器学习当中能深入浅出的方法第一步就是先学会用numpy了.numpy是一个第三方的开源python库,他提供了许多科学的数值计算工具,尤其是大型矩阵计算,但使用配置非常简单,结合matplotlib ...
- HBase实战 | 知乎实时数仓架构演进
https://mp.weixin.qq.com/s/hx-q13QteNvtXRpNsE5Y0A 作者 | 知乎数据工程团队编辑 | VincentAI 前线导读:“数据智能” (Data Inte ...
- 美团点评基于 Flink 的实时数仓建设实践
https://mp.weixin.qq.com/s?__biz=MjM5NjQ5MTI5OA==&mid=2651749037&idx=1&sn=4a448647b3dae5 ...
- [development][security][modsecurity][nginx] nginx / modsecurity development things
接续前节:[security][modsecurity][nginx] nginx 与 modsecurity nginx开发手册:https://nginx.org/en/docs/dev/deve ...