前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【干货】用于机器学习的线性代数速查表

【干货】用于机器学习的线性代数速查表

作者头像
AiTechYun
发布2018-03-05 13:59:43
8570
发布2018-03-05 13:59:43
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

NumPy,Python的数值计算库,它提供了许多线性代数函数。对机器学习从业人员用处很大。

在这篇文章中,你将看到对于机器学习从业者非常有用的处理矢量和矩阵的关键函数。

这是一份速查表,所有例子都很简短,假设你处于熟悉它们的阶段,建议收藏备用。

本教程分为7个部分; 他们是:

1. 数组

2. 矢量

3. 矩阵

4. 矩阵的类型

5. 矩阵运算

6. 矩阵分解

7. 统计

1.数组

创建NumPy数组有很多方法。

数组

代码语言:javascript
复制
from numpyimport array
A= array([[1,2,3],[1,2,3],[1,2,3]])

零(用零填充数组)

代码语言:javascript
复制
from numpyimport zeros
A= zeros([3,5])

一(用1填充数组)

代码语言:javascript
复制
from numpyimport ones
代码语言:javascript
复制
A= ones([5,5])

2.矢量

矢量是一个标量的行或者列。

矢量加法

代码语言:javascript
复制
c= a+ b

矢量减法

代码语言:javascript
复制
c= a- b

矢量乘法

代码语言:javascript
复制
c= a* b

矢量除法

代码语言:javascript
复制
c= a/ b

矩阵点积

代码语言:javascript
复制
c= a.dot(b)

矩阵乘以标量

代码语言:javascript
复制
c= a* 2.2

向量范数

代码语言:javascript
复制
from numpy.linalgimport norm
l2= norm(v)

3.矩阵

矩阵是标量组成的二维数组。

矩阵加法

代码语言:javascript
复制
C= A+ B

矩阵减法

代码语言:javascript
复制
C= A- B

矩阵乘法(哈达马积)

代码语言:javascript
复制
C= A* B

矩阵除法

代码语言:javascript
复制
C= A/ B

矩阵乘以矩阵(点积)

代码语言:javascript
复制
C= A.dot(B)

矩阵乘以向量(点积)

代码语言:javascript
复制
C= A.dot(b)

矩阵乘以标量

代码语言:javascript
复制
C= A.dot(2.2)

4.矩阵的类型

在更广泛的计算中经常使用不同类型的矩阵作为元素。

三角矩阵

代码语言:javascript
复制
# lower
from numpyimport tril
lower= tril(M)
# upper
from numpyimport triu
upper= triu(M)

对角矩阵

代码语言:javascript
复制
from numpyimport diag
d= diag(M)

单位矩阵

from numpy import identity I = identity(3)

5.矩阵运算

矩阵操作通常用作更高级计算的基础。

矩阵转置

代码语言:javascript
复制
B= A.T

矩阵求逆

代码语言:javascript
复制
from numpy.linalgimport inv
B= inv(A)

矩阵的迹

代码语言:javascript
复制
from numpyimport trace
B= trace(A)

矩阵行列式

代码语言:javascript
复制
from numpy.linalgimport det
B= det(A)

矩阵的秩

代码语言:javascript
复制
from numpy.linalgimport matrix_rank
r= matrix_rank(A)

6.矩阵分解

矩阵分解(matrix factorization或Matrix factorization)将矩阵分解为其组成部分,以使其他运算更简单,更稳定。

LU分解

代码语言:javascript
复制
from scipy.linalgimport lu
P, L, U= lu(A)

QR分解

代码语言:javascript
复制
from numpy.linalgimport qr
Q, R= qr(A,'complete')

特征分解

代码语言:javascript
复制
from numpy.linalgimport eig
values, vectors= eig(A)

奇异值分解

代码语言:javascript
复制
from scipy.linalgimport svd
U, s, V= svd(A)

7.统计

统计数据总结了矢量或矩阵的内容,并且经常用作更广泛操作的组成部分。

均值

代码语言:javascript
复制
from numpyimport mean
result= mean(v)

方差

代码语言:javascript
复制
from numpyimport var
result= var(v, ddof=1)

标准差(均方差)

代码语言:javascript
复制
from numpyimport std
result= std(v, ddof=1)

协方差矩阵

代码语言:javascript
复制
from numpyimport cov
sigma= cov(v1, v2)

线性最小二乘

from numpy.linalg import lstsq b = lstsq(X, y)

附:

NumPy API

  • 线性代数:https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.linalg.html
  • 统计:https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.statistics.html

其他速查表

  • https://minireference.com/static/tutorials/linear_algebra_in_4_pages.pdf
  • https://github.com/scalanlp/breeze/wiki/Linear-Algebra-Cheat-Sheet
  • https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Python_SciPy_Cheat_Sheet_Linear_Algebra.pdf
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.数组
  • 2.矢量
  • 3.矩阵
  • 4.矩阵的类型
  • 5.矩阵运算
  • 6.矩阵分解
  • 7.统计
  • 附:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档