python numpy np.linalg的用法

匿名 (未验证) 提交于 2019-12-02 22:51:30

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():矩阵求行列式(标量)




易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!