NumPy,Python的数值计算库,它提供了许多线性代数函数。对机器学习从业人员用处很大。
在这篇文章中,你将看到对于机器学习从业者非常有用的处理矢量和矩阵的关键函数。
这是一份速查表,所有例子都很简短,假设你处于熟悉它们的阶段,建议收藏备用。
本教程分为7个部分; 他们是:
1. 数组
2. 矢量
3. 矩阵
4. 矩阵的类型
5. 矩阵运算
6. 矩阵分解
7. 统计
1.数组
创建NumPy数组有很多方法。
数组
2 | A = array([[ 1 , 2 , 3 ],[ 1 , 2 , 3 ],[ 1 , 2 , 3 ]]) |
零(用零填充数组)
一(用1填充数组)
2.矢量
矢量是一个标量的行或者列。
矢量加法
矢量减法
矢量乘法
矢量除法
矩阵点积
矩阵乘以标量
向量范数
1 | from numpy.linalg import norm |
3.矩阵
矩阵是标量组成的二维数组。
矩阵加法
矩阵减法
矩阵乘法(哈达马积)
矩阵除法
矩阵乘以矩阵(点积)
矩阵乘以向量(点积)
矩阵乘以标量
4.矩阵的类型
在更广泛的计算中经常使用不同类型的矩阵作为元素。
三角矩阵
对角矩阵
单位矩阵
from numpy import identity
I = identity(3)
5.矩阵运算
矩阵操作通常用作更高级计算的基础。
矩阵转置
矩阵求逆
1 | from numpy.linalg import inv |
矩阵的迹
矩阵行列式
1 | from numpy.linalg import det |
矩阵的秩
1 | from numpy.linalg import matrix_rank |
6.矩阵分解
矩阵分解(matrix factorization或Matrix factorization)将矩阵分解为其组成部分,以使其他运算更简单,更稳定。
LU分解
1 | from scipy.linalg import lu |
QR分解
1 | from numpy.linalg import qr |
特征分解
1 | from numpy.linalg import eig |
奇异值分解
1 | from scipy.linalg import svd |
7.统计
统计数据总结了矢量或矩阵的内容,并且经常用作更广泛操作的组成部分。
均值
方差
标准差(均方差)
协方差矩阵
线性最小二乘
from numpy.linalg import lstsq
b = lstsq(X, y)
附:
NumPy API
其他速查表
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