首页 > 编程笔记

Numpy线性代数常用函数介绍

线性代数在机器学习中有重要的应用,比如在 PCA 降维中,我们可以使用特征值和特征向量找到降维的空间(后面会详细讲解)。另外线性代数也增强了计算的性能,可以提高计算速度。本节将介绍线性代数中常用的计算函数。示例代码如下。
In [1]: import numpy as np
In [2]: a=np.array([[1,2],
   ...:             [3,4]])
In [3]: b=np.array([[0,1],
   ...:             [2,3]]) 

1) dot()点乘

dot 方法是计算矩阵点乘的方法,请注意它与之前介绍的 multiply 函数的区别。
In [4]: np.dot(a,b)  # 矩阵相乘
Out[4]: 
array([[ 4,  7],
       [ 8, 15]])

2) vdot()向量点乘

vdot 方法是计算向量点乘的方法。
In [5]: np.vdot(a[0],b[0])  # 向量相乘
Out[5]: 2
linalg 中的 solve 方法是计算矩阵方程组的方法。
In [6]: np.linalg.solve(a, b[0])  # 解方程组
Out[6]: array([ 1. , -0.5])

3) linalg.inv()逆矩阵计算

linalg 中的 inv 方法是计算逆矩阵的方法。
In [7]: np.linalg.inv(a)  # 求逆矩阵
Out[7]: 
array([[-2. ,  1. ],
       [ 1.5, -0.5]])

4) linalg.svd()奇异值计算

linalg 中的 svd 方法是计算奇异值矩阵的方法。
In [8]: np.linalg.svd(a)  # 奇异值分解
Out[8]: 
(array([[-0.40455358, -0.9145143 ],
        [-0.9145143 ,  0.40455358]]),
array([5.4649857 , 0.36596619]),
array([[-0.57604844, -0.81741556],
        [ 0.81741556, -0.57604844]]))

5) linalg.eig()计算特征值与特征向量

linalg 方法用来计算数组的特征值和特征向量。
In [9]: np.linalg.eig(a)  # 求特征值和特征向量
Out[9]: 
(array([-0.37228132,  5.37228132]), array([[-0.82456484, -0.41597356],
        [ 0.56576746, -0.90937671]]))

优秀文章