python numpy np.linalg的用法

numpy下的linalg=linear+algebra,包含很多线性代数的运算,主要用法有以下几种:

1.np.linalg.norm:进行范数运算,范数是对向量(或者矩阵)的度量,是一个标量(scalar);

2.np.linalg.eigh:计算矩阵特征向量,PCA中有使用到,下面是几个例子:

>>> w, v = LA.eig(np.diag((1, 2, 3)))  
>>> w; v  
array([ 1.,  2.,  3.])  
array([[ 1.,  0.,  0.],  
       [ 0.,  1.,  0.],  
       [ 0.,  0.,  1.]])  
>>> w, v = LA.eig(np.array([[1, -1], [1, 1]]))  
>>> w; v  
array([ 1. + 1.j,  1. - 1.j])  
array([[ 0.70710678+0.j        ,  0.70710678+0.j        ],  
       [ 0.00000000-0.70710678j,  0.00000000+0.70710678j]])  
>>> a = np.array([[1, 1j], [-1j, 1]])  
>>> w, v = LA.eig(a)  
>>> w; v  
array([  2.00000000e+00+0.j,   5.98651912e-36+0.j]) # i.e., {2, 0}  
array([[ 0.00000000+0.70710678j,  0.70710678+0.j        ],  
       [ 0.70710678+0.j        ,  0.00000000+0.70710678j]])  

>>> a = np.array([[1 + 1e-9, 0], [0, 1 - 1e-9]])  
>>> # Theor. e-values are 1 +/- 1e-9  
>>> w, v = LA.eig(a)  
>>> w; v  
array([ 1.,  1.])  
array([[ 1.,  0.],  
       [ 0.,  1.]])  

3.np.linalg.inv():矩阵求逆

4.np.linalg.det():矩阵求行列式(标量)



    

你可能感兴趣的:(学习笔记,代码记录)