NumPy,Python的数值计算库,它提供了许多线性代数函数。对机器学习从业人员用处很大。
在这篇文章中,你将看到对于机器学习从业者非常有用的处理矢量和矩阵的关键函数。
这是一份速查表,所有例子都很简短,假设你处于熟悉它们的阶段,建议收藏备用。
本教程分为7个部分; 他们是:
1. 数组
2. 矢量
3. 矩阵
4. 矩阵的类型
5. 矩阵运算
6. 矩阵分解
7. 统计
创建NumPy数组有很多方法。
数组
from numpyimport array
A= array([[1,2,3],[1,2,3],[1,2,3]])
零(用零填充数组)
from numpyimport zeros
A= zeros([3,5])
一(用1填充数组)
from numpyimport ones
A= ones([5,5])
矢量是一个标量的行或者列。
矢量加法
c= a+ b
矢量减法
c= a- b
矢量乘法
c= a* b
矢量除法
c= a/ b
矩阵点积
c= a.dot(b)
矩阵乘以标量
c= a* 2.2
向量范数
from numpy.linalgimport norm
l2= norm(v)
矩阵是标量组成的二维数组。
矩阵加法
C= A+ B
矩阵减法
C= A- B
矩阵乘法(哈达马积)
C= A* B
矩阵除法
C= A/ B
矩阵乘以矩阵(点积)
C= A.dot(B)
矩阵乘以向量(点积)
C= A.dot(b)
矩阵乘以标量
C= A.dot(2.2)
在更广泛的计算中经常使用不同类型的矩阵作为元素。
三角矩阵
# lower
from numpyimport tril
lower= tril(M)
# upper
from numpyimport triu
upper= triu(M)
对角矩阵
from numpyimport diag
d= diag(M)
单位矩阵
from numpy import identity I = identity(3)
矩阵操作通常用作更高级计算的基础。
矩阵转置
B= A.T
矩阵求逆
from numpy.linalgimport inv
B= inv(A)
矩阵的迹
from numpyimport trace
B= trace(A)
矩阵行列式
from numpy.linalgimport det
B= det(A)
矩阵的秩
from numpy.linalgimport matrix_rank
r= matrix_rank(A)
矩阵分解(matrix factorization或Matrix factorization)将矩阵分解为其组成部分,以使其他运算更简单,更稳定。
LU分解
from scipy.linalgimport lu
P, L, U= lu(A)
QR分解
from numpy.linalgimport qr
Q, R= qr(A,'complete')
特征分解
from numpy.linalgimport eig
values, vectors= eig(A)
奇异值分解
from scipy.linalgimport svd
U, s, V= svd(A)
统计数据总结了矢量或矩阵的内容,并且经常用作更广泛操作的组成部分。
均值
from numpyimport mean
result= mean(v)
方差
from numpyimport var
result= var(v, ddof=1)
标准差(均方差)
from numpyimport std
result= std(v, ddof=1)
协方差矩阵
from numpyimport cov
sigma= cov(v1, v2)
线性最小二乘
from numpy.linalg import lstsq b = lstsq(X, y)
NumPy API
其他速查表